进制转换c++代码_跟小黑学漏洞利用开发之16进制字符转换
Hello Every Boby!
又是一篇緩沖區(qū)漏洞利用的文章,本文我們將繼續(xù)使用vulnserver漏洞練習程序中—HTER指令,它與前一篇Unicode類似。LTER緩沖區(qū)轉換為Unicode,而HTER緩沖區(qū)轉換為十六進制,讓我們一起來看看發(fā)生這種轉換時發(fā)生什么,以及如何完成我們的漏洞利用程序。遇到有些小伙伴說進行漏洞利用開發(fā)必須使用immunity Debugger嗎?其實沒有規(guī)定必須使用,我希望在此系列更多分享關于漏洞利用思維層面東西。畢竟殊勝因緣,一通百通。
所以此篇我使用X64dbg調試器完成漏洞利用開發(fā)。
POC攻擊
讓我們用python漏洞重新創(chuàng)建POC,并執(zhí)行它。然后再次引發(fā)崩潰,詳情如圖所示:
發(fā)送3000字節(jié)的A引發(fā)應用程序崩潰。但是,EIP被AAAAAAAA代替41414141。嘗試發(fā)送了不同的字符串到緩沖區(qū),以進一步觀察應用程序的情況。基于此,我們觀察到緩沖區(qū)以某種方式被轉換為十六進制字節(jié),而不是ASCII。
“二分法”分析偏移量
由于緩沖區(qū)已轉換為十六進制字節(jié)!mona pc或者使用msf-pattern命令生成的唯一字符串不起作用。因此,我使用了“二分法”確定偏移量。我沒有發(fā)送3000 A,而是花了1500 A和1500B。
如圖所示,EIP被’BBBBBBBB’,因為我們已知B有1500字節(jié)。
我們重復上述操作調整幾次,發(fā)現(xiàn)偏移量在2041字節(jié);下面為修正過后的代碼。(注意:由于緩沖區(qū)已轉換為16進制,因為使用覆蓋offset字節(jié)應該是8個B,而不是之前4個。)
運行修正后的代碼EIP被8個B準確覆蓋。
至此為了將執(zhí)行流程重定向到C緩沖區(qū),我們可以使用曾經用過指令“!mona jmp -r esp”,找到包含JMP ESP地址。為此我們使用之前第一個地址即0x625011AF。(注意:由于我這使用X64dbg尋找JMP ESP。其實道理都一樣,一通百通^_^)
然后我們修改代碼,如圖所示。
運行最新修改的代碼,如圖所示;重定向有效。
16進制的shellcode
我們所需要做的下一件事,就是需要制作一個16進制的shellcode,如圖所示。
漏洞利用攻擊
我們完成最終利用代碼,運行編寫的Exploit會導致目標機器產生4444/TCP端口監(jiān)聽。
連接此端口,完成Getshell。
最后需要說下kali-linux 2019.4版本確實很輕便,推薦大家更新使用。
原文鏈接:https://www.anquanke.com/post/id/194070
總結
以上是生活随笔為你收集整理的进制转换c++代码_跟小黑学漏洞利用开发之16进制字符转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今日头条 文章采集_我在今日头条的成长之
- 下一篇: adguard没有核心 core no_