背景
在一次日常滲透過程中,發現了一臺機器可以利用jndi命令執行,但是無法注入內存馬,也無法直接上線,所以想到了
這一工具來獲取一些機器的信息,但是在使用過程中,發現該工具使用的DNS為dig.pm,但是dig.pm經過一些修改后變得時好時壞,無法接收到目標機器的請求,而且使用該工具需要執行兩個python文件,非常的難受,因此產生了修改該工具的想法。
修改內容
將dig.pm修改為ceye.io,增加接收范圍
添加自定義參數,不再需要在文件中修改
合并HexDnsEcho與CommandGen兩個文件,使用更加方便
添加獲取上一次命令執行結果的功能
兼容zsh
添加自定義dns服務器
實現有參數的命令執行,例如ls -al、type file、cat file等,由此可實現通過DNS讀取文件
實現分片傳輸,在發送數據次數存在限制的情況下使用不同dnslog子域獲取結果
添加--force功能,重復獲取結果的情況下未發現結尾字符時強行進行解密
2023-07-05 添加--force強行解密
重復獲取結果的情況下無視結尾字符強行解密
2023-04-18 支持分片傳輸
用于服務器存在發送限制,一個url僅能發送限定次數的情況
以dig.pm為例(因為dig.pm存在dns數據接收不全,漏數據情況,與本次更新遇到的情況十分類似,故使用dig.pm演示,為了更好的使用,推薦大家尋找其他的自建di g.pm)
1.正常使用工具;
2.當發現接收到的數據缺少或者不全時,會輸出類似發現中斷,缺少第4行的數據,下一次執行將從第4行開始的結果,同時若發現接收的數據存在最后一行時會出現疑似為最后一塊,請輸入Y/N決定是否開始處理數據,若沒有上一句話可以選擇Y,此處我們選擇N;
3.選擇N后繼續執行,會輸出我們下一步需要執行的語句,復制到靶機執行即可;
4.數據不全會一直執行,需要不斷將命令復制到靶機上執行;
5.一直到最后沒有出現發現中斷,缺少第4行的數據,下一次執行將從第4行開始的類似字樣,我們選擇Y,即可獲取執行結果;
6.同時也會輸出獲取本次命令執行結果的語句,若想要再次獲取執行結果,直接復制粘貼使用即可。
2023-03-27 來自r0fus0d(@No-Github)師傅的更新-支持http basic認證的自建dig.pm
用于存在http basic認證的自建dig.pm
python3 HexDnsEchoT.py -ds DNS服務器 -tz 服務器時區 -cc dnsurl中點的數量+2 -u http_basic認證用戶 -p http_basic認證密碼
使用
usage: HexDnsEchoT.py [-h] [-d DNSURL] [-t TOKEN] [-lt LASTFINISHTIME] [-f FILTER] [-ds DOMAIN_SERVER] [-tz TIMEZONE] [-cc COUNT] [-m MODEL] [-u HTTPBASICUSER] [-p HTTPBASICPASS] options: -h, --help show this help message and exit -d DNSURL, --dnsurl DNSURL Ceye Dnslog -t TOKEN, --token TOKEN Dns Server Token or CeyeToken -lt LASTFINISHTIME, --lastfinishtime LASTFINISHTIME The LastFinishTime -f FILTER, --filter FILTER Dns Filter -ds DOMAIN_SERVER, --domain_server DOMAIN_SERVER Domain Server -tz TIMEZONE, --timezone TIMEZONE Timezone -cc COUNT, --count COUNT Count Counts -m MODEL, --model MODEL Recent Result -u HTTPBASICUSER, --httpbasicuser HTTPBASICUSER HTTPBasicAuth User -p HTTPBASICPASS, --httpbasicpass HTTPBASICPASS HTTPBasicAuth Pass
因為ceye僅能保存100個數據,且會出現重復的情況下,添加自定義dns服務器
Ceye
python3 HexDnsEchoT.py -d YourCeye.ceye.io -t ceyeToken
自定義DNS服務器
python3 HexDnsEchoT.py -ds DNS服務器 -tz 服務器時區 -cc dnsurl中點的數量+2
例
python3 HexDnsEchoT.py -ds http://dig.pm -tz "UTC" -cc 7
服務器時區可以使用項目中的Timezone.py自行比對
其中-cc 7為下圖所示,dnsurl中5個點加2,為7
可能等待結果返回的時間會比較長,請耐心等待
注意:dig.pm有可能獲取結果不穩定,大家可以自己搭建或者尋找其他DNSLOG平臺使用,只需要滿足為以下項目搭建即可:
https://github.com/yumusb/DNSLog-Platform-Golang
或者是以http://x.x.x.x/new_gen獲取隨機子域名并以http://x.x.x.x/token獲取dns結果的dnslog平臺也可以使用
fofa可以直接搜索DNSLOG Platform尋找DNSLOG平臺
復制輸出的命令,在目標機器上執行
DNS獲取到請求,進行解密,獲取機器信息
在linux上也可以執行獲取結果
執行成功后自動開啟新的filter,無需重新執行直接進行下一步命令執行
有時會出現目標機器的命令未執行完成,但是已經獲取到了一部分結果,可以使用以下命令再次獲取結果,本命令已經輸出在上次的執行結果中,可直接復制使用
Ceye
python3 HexDnsEchoT.py -d yourceye.ceye.io -t ceyetoken -f filterstr -lt "上次命令執行的時間" -m GR
自定義DNS服務器
python3 HexDnsEchoT.py -ds 自定義DNS服務器 -t 上一次執行的token -lt "上次命令執行的時間" -m GR -cc dnsurl中點的數量
以dig.pm為例
python3 HexDnsEchoT.py -ds http://dig.pm -t 上一次執行的token -lt "上次命令執行的時間" -m GR -cc 7
可能等的時間會比較長,請耐心等待
有參數的命令執行
ls -al
type useruid.ini
總結
在遇到工具無法使用的時候不要放棄,多想想辦法就可以解決
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
9304瀏覽量
86067 -
DNS
+關注
關注
0文章
219瀏覽量
19927 -
文件
+關注
關注
1文章
570瀏覽量
24822 -
命令
+關注
關注
5文章
696瀏覽量
22112 -
python
+關注
關注
56文章
4807瀏覽量
85040
原文標題:命令執行不回顯利用工具
文章出處:【微信號:菜鳥學信安,微信公眾號:菜鳥學信安】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論