i) OpenXMolar v 1.0
OpenXMolar is a Microsoft Open XML file format fuzzing framework, written in Python.
ii) Motivation Behind OpenXMolar
MS OpenXML office files are widely used and the attack surface is huge, due to complexity of the softwares that supports OpenXML format. Office Open XML files are zipped, XML-based file format. I could not find any easy to use OpenXML auditing tools/framework available on the internet which provides software security auditors a easy to use platform using which auditors can write their own test cases and tweak internal structure of Open XML files and run fuzz test (Example : Microsoft Office).
Hence OpenXMolar was developed, using which software security auditors can focus, only on writing test cases for tweaking OpenXML internal (XML and other ) files and the framework takes care of rest of the things like unpacking, packing of OpenXML files, Error handling, etc.
iii) Dependencies
OpenXMolar is written and tested on Python v2.7. OpenXMolar uses following third party libraries
winappdbg / pydbg
Debugger is an immense part of any Fuzzer. Open X-Molar supports two python debugger, one is winappdbg and another is pydbg. Sometimes installing pydbg on windows environment can be painful, and pydbg code base is not well maintained hence winappdbg support added to Open X-Molar. Its recommended that user use winappdbg.
pyautoit
Since we feed random yet valid data into target application during fuzzing, target application reacts in many different ways. During fuzzing the target application may throw different errors through different pop-up windows. To continue the fuzzing process, the fuzzer must handle these pop-up error windows properly. OpenXMolar uses PyAutoIT to suppress different application pop-up windows. PyAutoIt is Python binding for AutoItX3.dll
crash_binning.py
crash_binning is part of sulley framework. crash_binning.py is used only when you've selected pydbg as debugger. crash_binning.py is used to dump crash information. This is only required when you are using pydbg as debugger.
xmltodict
This is not core part of the Open X-Molar. The XML String Mutation module (FileFormatHandlers\xmlHandler.py) was written using xmltodict library.
iv) Architecture:
On a high level, OpenXMolar can be divided into few components.
OpenXMolar.py
This is the core component of this Tool and responsible for doing many important stuffs like the main fuzzing loop.
OfficeFileProcessor.py
This component mostly handles processing of OpenXML document such as packing, unpacking of openxml files, mapping them in memory, converting OpenXML document to python data structures etc.
PopUpKiller.py - PopUp/Error Message Handlers :
This component suppresses/kills unwanted pop-ups appeared during fuzzing.
FileFormatHandlers//
An OpenXML file may contain various files like XML files, Binary files etc. FileFormatHandlers are basically a collection of mutation scripts, responsible for handling different files found inside an OpenXML document and mutate them.
OXDumper.py
OXDumper.py decompresses OpenXML files provided in folder "OpenXMolar\BaseOfficeDocs\OpenXMLFiles" and output a python list of files present in the OpenXML file. OXDumper.py accepts comma separated file extensions. OXDumper.py is useful when you are targeting any specific set of files present in any OpenXML document.
crashSummary.py
crashSummary.py summarizes crashes found during fuzzing process in tabular format. The output of crashSummary.py should look like this:

v) Configuration File Walk through
The default configuration file 'config.py' is very well commented and explains all of its parameters really well. Please review the default config.py file thoroughly before running the fuzzer to avoid unwanted errors.
vi) Writing your Open XML internal File Mutation Scripts:
As said earlier, an OpenXML file package may contain various files like XML files, Binary files etc. FileFormatHandlers are basically a collection of mutation scripts, responsible for handling different files found inside an OpenXML document and mutate them. Generating effective test cases is the most important step in any fuzz testing process.
The motive behind OpenXMolar was to provide security auditors an easy & flexible platform on which fuzz tester can write their own test cases very easily for OpenXML files. When it comes to effective OpenXML format fuzzing, the main part is how we mutate different files (*.xml, *.bin etc) present inside OpenXML package (zip alike). To give users an idea of how file format handlers are written, two file format handlers are provided with this fuzzer, however they are very dumb in nature and not very effective.
Any file format handler module should be of following structure
# Import whatever you want. class Handler():# The class name should be always 'Handler' def __init__(self): pass def Fuzzit(self,actual_data_stream): # A function called Fuzzit must be present in Handler class # and it should return fuzzed data/xml string/whatever. # Note: Data type of actual_data_stream and data_after_mutation should always be same. return data_after_mutation
Once your file format handler module is ready you need to place the *.py file in FileFormatHandlers// folder and add the handler entry and associated file extension in config.py file like this :
FILE_FORMAT_HANDLERS = {'xml':'xmlHandler.py', 'bin':'BinaryHandler.py', 'rels':'xmlHandler.py', 'vml':'xmlHandler.py' }
vii)Adding More POPUP / Errors Windows Handler
The default PopUpKiller.py file provided with Open X-Molar, is having few most occurred pop up / error windows handler for MS Word, MS Excel & Power Point. Using AutoIT Window Info tool (https://www.autoitscript.com/site/autoit/downloads/) you can add more POPUP / Errors Windows Handlers into 'PopUpKiller.py'. One example is given below.
So to be able to Handle the error pop up window shown in screen shot, following lines need to be added in : PopUpKiller.py
if "PowerPoint found a problem with content" in autoit.win_get_text('Microsoft PowerPoint'): autoit.control_click("[Class:#32770]", "Button1")
viii)The First Run
This fuzzer is well tested on 32 Bit and 64 Bit Windows Platforms (32 Bit Office Process). All the required libraries are distributed with this fuzzer in 'ExtDepLibs/' folder. Hence if you have installed python v2.7, you are good to go.
To verify everything is at right place, better to run Open X-Molar with Microsoft Default XPS Viewer first time(C:\Windows\System32\xpsrchvw.exe). Place any *.oxps file in '\BaseOfficeDocs\OpenXMLOfficeFiles' and run OpenXMolar.py.
OpenXMolar.py accepts one command line argument which is the configuration file.
C:\Users\John\Desktop\OpenXMolar>python OpenXMolar.py config.py [Warning] Pydbg was not found. Which is required to run this fuzzer. Install Pydbg First. Ignore if you have winappdbg installed. ____ __ ____ __ _ / __ \ \ \ / / \/ | | | | | | |_ __ ___ _ __ \ V /| \ / | ___ | | __ _ _ __ | | | | '_ \ / _ \ '_ \ > < | |\/| |/ _ \| |/ _` | '__| | |__| | |_) | __/ | | | / . \| | | | (_) | | (_| | | \____/| .__/ \___|_| |_| /_/ \_\_| |_|\___/|_|\__,_|_| | | |_| An MS OpenXML File Format Fuzzing Framework. Author : Debasish Mandal (twitter.com/debasishm89) [+] 2017:05:05::23:11:23 Using debugger : winappdbg [+] 2017:05:05::23:11:23 POP Up killer Thread started.. [+] 2017:05:05::23:11:24 Loading base files in memory from : BaseOfficeDocs\UnpackedMSOpenXMLFormatFiles [+] 2017:05:05::23:11:24 Loading File Format Handler for extension : xml => xmlHandler.py [+] 2017:05:05::23:11:24 Loading File Format Handler for extension : rels => xmlHandler.py [+] 2017:05:05::23:11:24 Loading File Format Handler Done !! [+] 2017:05:05::23:11:24 Starting Fuzzing [+] 2017:05:05::23:11:25 Temp cleaner started... [+] 2017:05:05::23:11:25 Cleaning Temp Directory... ... ...
ix) Open X-Molar in Action
Here is a very short video on running fuzztest on MS Office Word:
https://www.youtube.com/watch?v=b7n1tuFDl5A
x) Fuzzing Non-OpenXML Applications :
Due to the flexible structure of the fuzzer, this Fuzzer can also be used to fuzz other windows application. You just need do following :
- In config.py add the target application binary (exe) and extension in APP_LIST of config.py
- In config.py change OpenXMLFormat to False
- Write your own File format mutation handler and place it in FileFormatHandlers/ folder
- Add the newly added FileFormatHandler in FILE_FORMAT_HANDLERS of config.py
- Provide some base files in folder OtherFileFormats/
- Add custom error / popup windows handler in PopUpKiller.py using Au3Info tool if required.And you're good to go.
xi) Few More Points about OpenXMolar:
Fuzzing Efficiency: To maximize fuzzing efficiency OpenXMolar doesn't read the provided base files again and from disk. While starting up, it loads all base files in memory and convert them into easy to manage python data structures and mutate them straight from memory.
Auto identification of internal files of OpenXML package : An Open XML file package may contain various files like XML files, Binary files etc. OpenXMolar has capability to identify internal file types and based that chooses mutation script and mutate them. Please refer to the default config.py file (Param : AUTO_IDENTIFY_INTERNAL_FILE_FORAMT) for details.
xii) TODO
Improve Fuzzing Speed
New Feature / Bugs -> https://github.com/debasishm89/OpenXMolar/issues
xiii) License
This software is licensed under New BSD License although the following libraries are included with Open X-Molar and are licensed separately.
Module | Source |
---|---|
winappdbg | https://github.com/MarioVilas/winappdbg |
pydbg | https://github.com/OpenRCE/pydbg |
pyautoit | https://pypi.python.org/pypi/PyAutoIt/0.3 |
crash_binning | https://github.com/OpenRCE/sulley |
xmltodict | https://github.com/martinblech/xmltodict |
Au3Info.exe | https://www.autoitscript.com/autoit3/docs/intro/au3spy.htm |
xiv) Source
The source code is available here : https://github.com/debasishm89/OpenXMolar
It is a good job! I really liked this post. Thanks for giving wonderful content and please continue the more unique post.
ReplyDeleteOracle Training in Chennai
Oracle Training institute in chennai
Tableau Training in Chennai
Spark Training in Chennai
Unix Training in Chennai
Power BI Training in Chennai
Social Media Marketing Courses in Chennai
Oracle Training in Chennai
Oracle Training institute in chennai
Nice article I was really impressed by seeing this blog, it was very interesting and it is very useful for me.
ReplyDeleteWeb Designing Course in chennai
web designing training in chennai
ccna Training in Chennai
PHP Training in Chennai
ReactJS Training in Chennai
Web Designing Course in chennai
Web designing training in chennai
The info is good enough.I preview this type of good article only. Good job
ReplyDeleteDOT NET Training in Chennai
DOT NET Course in Chennai
Dot Net Training in T Nagar
Html5 Training in Chennai
Html5 Training
QTP Training in Chennai
SAS Training in Chennai
DOT NET Training in Chennai
Nice idea,keep sharing your ideas with us.i hope this information's will be helpful for the new learners.
ReplyDeleteSelenium Training in Chennai
selenium training in velachery
JAVA Training in Chennai
Python Training in Chennai
Big data training in chennai
Android Training in Chennai
Selenium Training in Chennai
Selenium Training in Anna Nagar
Had a great time reading your blog. Thanks for sharing this post to our vision.
ReplyDeleteSpoken English Classes in Medavakkam
Spoken English Class in Pallavaram
Spoken English Class in Perungudi
Spoken English Classes in Ambattur OT
Spoken English Classes in Chennai
Spoken English in Chennai
English Speaking Classes in Mumbai
IELTS Chennai
IELTS Mumbai
Great Blog!!! Was an interesting blog with a clear concept. And will surely help many to update them.
ReplyDeleteReactJS Training in Chennai
ReactJS Training
ReactJS Certification
gst classes in chennai
ui design course in chennai
Web Designing Course in Chennai
Ethical Hacking Course in Chennai
Tally Course in Chennai
ccna Training in Chennai
Commenting on a blog is an art. Good comments create relations. You’re doing great work. Keep it up.
ReplyDeleteOracle Training in Medavakkam / Best Oracle Training in Medavakkam
Oracle Training Course in Chennai / Best Oracle Training Institute in Chennai
This blog looking good and having a great content to understand and good information among this blog.
ReplyDeleteweb designing and development course training institute in Chennai with placement
PHP MySQL programming developer course training institute in chennai with placement
Magento 2 Developer course training institute in chennai
Aluminium Composite Panel or ACP Sheet is used for building exteriors, interior applications, and signage. They are durable, easy to maintain & cost-effective with different colour variants.
ReplyDeleteThanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
ReplyDeleteWeb Designing Training Institute in Chennai | web design training class in chennai | web designing course in chennai with placement
Mobile Application Development Courses in chennai
Data Science Training in Chennai | Data Science courses in Chennai
Professional packers and movers in chennai | PDY Packers | Household Goods Shifting
Web Designing Training Institute in Chennai | Web Designing courses in Chennai
Google ads services | Google Ads Management agency
Web Designing Course in Chennai | Web Designing Training in Chennai
Admire this blog. Keep sharing more updates like this
ReplyDeleteTally Course in Chennai
Tally Training in Chennai
Tally training in coimbatore
Tally course in madurai
Tally Course in Hyderabad
Tally Classes in Chennai
Tally classes in coimbatore
Tally coaching centre in coimbatore
Software Testing Training in Chennai
German Classes in Bangalore
It's a looks very awesome article! Thanks a lot of sharing for information.
ReplyDeletePython course in Chennai
Python Training in Bangalore
Python Course in Coimbatore
Python Training in Chennai
Big Data Training in Coimbatore
Salesforce Training in Bangalore
Python Classes in Bangalore
python training in hyderabad
Taldeen is one of the best plastic manufacturing company in Saudi Arabia. They are manufacturing Handling Solutions Plastic products like Plastic Pallets and plastic crates. Here is the link of the product
ReplyDeleteHandling Solutions
Plastic Pallets
Here is the details of best BSc Medical Imaging Technology Colleges in Bangalore. You can get the college details from the below link. BSc Medical Imaging Technology Course is one of the best demanding course in recent times in India
BSc Medical Imaging Technology Colleges In Bangalore
Christian College Bangalore providing BSc Medical Imaging Technology Course. Here is the link about the details of BSc Medical Imaging Technology. You can click the below link for more information about BSc Medical Imaging Technology.
BSc Cardiac Care Technology Colleges In Bangalore
Christian College Bangalore providing BSc Optometry Course. Here is the link about the details of BSc Optometry. You can click the below link for more information about BSc Optometry. BSc Optometry is one of the most demanding course in recent times.
Optometry Colleges In Bangalore
BBA Aviation course is the best (Most Demanded) management course in India. Here, Christian College Bangalore providing BBA Aviation course. You can get the details of Christian College BBA Aviation from the below mentioned link. If you are interested in BBA Aviation, just visit the below link to know about BBA Aviation.
BBA Aviation Colleges In Bangalore
GrueBleen is one of the Branding and Marketing agency Based in Riyadh- Saudi Arabia. The main functions of GrueBleen is Advertising, Branding, Marketing, Office Branding, Exhibition Management and Digital Marketing. Visit the below link to know more about GrueBleen Creative Club.
Branding Agency Riyadh
Marketing Agency Riyadh
Agriculture Solutions – Taldeen is a plastic manufacturing company in Saudi Arabia. They are manufacturing agricultural plastic products like greenhouse cover and hay cover. Visit the below link to know more details
Agriculture Solutions
Greenhouse Cover
Medical Imaging Technology – One of the most demanding allied health science course in recent times in India. Check out the details of Best BSc Medical Imaging Technology Colleges Details with the following link.
BSc Medical Imaging Technology Colleges In Bangalore
BSc Perfusion Technology – If you are looking to study BSc Perfusion Technology in Bangalore, just check out the following link. In that link you can get the details of Best BSc Medical Imaging Technology colleges in Bangalore
BSc Perfusion Technology Colleges in Bangalore
GrueBleen – One of the best social media marketing agency in Riyadh- Saudi Arabia. Visit here for the all service details of GrueBleen.
Social Media Marketing Agency
A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. program cek mutasi
ReplyDeletePretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. program cek mutasi
ReplyDelete
ReplyDeleteThis content of information has
helped me a lot. It is very well explained and easy to understand.
seo training classes
seo training course
seo training institute in chennai
seo training institutes
seo courses in chennai
seo institutes in chennai
seo classes in chennai
seo training center in chennai
Thanks for this blog are more informative contents step by step. I here attached my site would you see this blog .
ReplyDelete7 tips to start a career in digital marketing
“Digital marketing is the marketing of product or service using digital technologies, mainly on the Internet, but also including mobile phones, display advertising, and any other digital medium”. This is the definition that you would get when you search for the term “Digital marketing” in google. Let’s give out a simpler explanation by saying, “the form of marketing, using the internet and technologies like phones, computer etc”.
we have offered to the advanced syllabus course digital marketing for available join now.
more details click the link now.
https://www.webdschool.com/digital-marketing-course-in-chennai.html
Amazing article useful information.
ReplyDeleteWeb designing trends in 2020
When we look into the trends, everything which is ruling today’s world was once a start up and slowly begun getting into. But Now they have literally transformed our lives on a tremendous note. To name a few, Facebook, Whats App, Twitter can be a promising proof for such a transformation and have a true impact on the digital world.
we have offered to the advanced syllabus course web design and development for available join now.
more details click the link now.
https://www.webdschool.com/web-development-course-in-chennai.html
Thanks for the informative article About Java. This is one of the best resources I have found in quite some time.thansk for the updation.
ReplyDeleteAi & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai
Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share. ms office 2016 free download full version
ReplyDeletelearning and improving knowledge for this article it was very useful and also recommend the frieds also about this Article.
ReplyDeleteRobotic Process Automation (RPA) Training in Chennai | Robotic Process Automation (RPA) Training in anna nagar | Robotic Process Automation (RPA) Training in omr | Robotic Process Automation (RPA) Training in porur | Robotic Process Automation (RPA) Training in tambaram | Robotic Process Automation (RPA) Training in velachery
nice blog..valuable information....thanks for sharing...
ReplyDeleteStudy Abroad Consultants in Kerala
study abroad consultants in thrissur
Study Abroad Consultants in Calicut
abroad job consultancy in coimbatore
abroad job consultancy in thrissur
overseas education consultants in thrissur
study abroad
study in poland
study in europe
education in germany
Thanks for the nice blog. It was very useful for me. I'm happy I found this blog. Thank you for sharing with us,I too always learn something new from your post. that
ReplyDeleteI think this is the good It's important to find the right fit like this article and that the articles you are going to use are connected to your study. please checkout our website AWS course in Bangalore
ReplyDeleteFirst You got a great blog .I will be interested in more similar topics. i see you got really very useful topics, i will be always checking your blog thanks.
ReplyDeleteHey guys In our institute we are providing JAVA training with 100% placement. No prior knowledge is required because we teach you from the basics. any one who wants to improve their technical knowledge can join here. Kindly visit
JAVA Training | Certification Online Course
Java Training in Bangalore
We are well established IT and outsourcing firm working in the market since 2013. We are providing training to the people ,
ReplyDeletelike- Web Design , Graphics Design , SEO, CPA Marketing & YouTube Marketing.Call us Now whatsapp: +(88) 01537587949
: Freelance training course
good post Mobile XPRESS
Free bangla sex video:careful
good post Mobile XPRESS
Mua vé tại đại lý Aivivu, tham khảo
ReplyDeletevé máy bay đi Mỹ bao nhiêu tiền
chuyến bay về việt nam từ mỹ
giá vé máy bay từ đức về việt nam
vé máy bay nhật bản về việt nam
Lịch bay từ Seoul đến Hà Nội
ReplyDeleteSuch a great blog.Thanks for sharing.........
Hadoop Admin Training in Chennai
Hadoop Administration Training in Chennai
Đặt vé máy bay tại Aivivu, tham khảo
ReplyDeleteve may bay di my gia re
có chuyến bay từ mỹ về việt nam
bao giờ có chuyến bay từ đức về việt nam
vé máy bay nga về việt nam
mua vé máy bay từ anh về việt nam
chuyến bay từ pháp về việt nam
bảng giá khách sạn cách ly tphcm
ve may bay chuyen gia nuoc ngoai
Very nice blog. Thanks for sharing.
ReplyDeleteTamil romantic novels
Ramanichandran novels PDF
srikala novels PDF
Mallika manivannan novels PDF
muthulakshmi raghavan novels PDF
Infaa Alocious Novels PDF
N Seethalakshmi Novels PDF
Sashi Murali Tamil Novels
Reply io Vs SalesBlink
ReplyDeleteThanks for sharing such nice info. I hope you will share more information like this. please keep on sharing!
ReplyDeletePython Training In Bangalore | Python Online Training
Artificial Intelligence Training In Bangalore | Artificial Intelligence Online Training
Data Science Training In Bangalore | Data Science Online Training
Machine Learning Training In Bangalore | Machine Learning Online Training
AWS Training In Bangalore | AWS Online Training
IoT Training In Bangalore | IoT Online Training
Blockchain Training in Bangalore| BlockchainOnline Training
Adobe Experience Manager (AEM) Training In Bangalore | Adobe Experience Manager (AEM) Online Training
Oracle Apex Training In Bangalore | Oracle Apex Online Training
Much obliged for sharing this brilliant substance. its extremely fascinating. Numerous web journals I see these days don't actually give whatever pulls in others however the manner in which you have plainly clarified everything it's truly awesome. There are loads of posts But your method of Writing is so Good and Knowledgeable. continue to post such helpful data and view my site too...
ReplyDeleteEasy Freezy | Fold n fly | Classic dart paper airplane | how to make a paper airplane that flies far and straight step by step | windfin | stable paper airplane | nakamura paper airplane | paper airplane templates for distance
Such a great blog.Thanks for sharing.........
ReplyDeleteCarreers As a Graphic Designer
Graphic Designer Career
The remedy to this kind of error is to get a Windows registry cleaner and to have it installed in your system. This Windows registry cleaner can recognize which files of your system registry are infected with viruses or are defective. Microsoft Visual C++ 14.0 is required
ReplyDelete