IIS Application vs. Folder Detection During Blackbox Testing
هنگامی که مشغول تست یک وب سایت در IIS هستیم آگاهی داشتن از مسیر یک برنامه یا یک پوشه (یا یک پوشه مجازی) بسیار مهم است.
اگر با دایرکتوری مجازی و شرایط اپلیکیشن ها در IIS آشنایی ندارید می توانید از این لینک استفاده کنید
چرا دانستن این امر مفید است؟
من این را با استفاده از مثال های زیر توضیح می دهم.
اگر بتوانیم یک فایل را بجای یک پوشه در یک برنامه IIS بارگذاری کنیم، با آپلود web.config می توان RCE خیلی بهتری بدست آورد. به عنوان مثال : آپلود یک فایل در ریشه (Root) یک وب سایت دسترسی موثرتری برای ما دارد.
وقتی که ما کلید برای ایجاد VViewState داریم، به این اطلاعات نیاز بیشتری خواهیم داشت در غیر این صورت باید از فرآیند سعی و خطا استفاده کنیم. برای جزئیات بیشتر، Exploiting Deserialisation را از طریق ViewState در ASP.NET مشاهده کنید.
جزئیات بیشتر
ما چطوری می تونیم این کار را انجام بدهیم؟
با ارسال یکی از درخواست های GET زیر به یک مسیر، اگر برنامه با کد وضعیت 200 Ok و برخی از کدهای جاوا اسکریپت پاسخ دهد، این یک برنامه کاربردی است. اگر با کد وضعیت 500 خطای داخلی پاسخ می دهد، یک پوشه است:
Role_JSON_AppService.axd
یا Authentication_JSON_AppService.axd می تواند به جای Profile_JSON_AppService.axd استفاده شود
در این فرآیند حتی اگر این خدمات غیرفعال شود (به طور پیش فرض) کار خواهد کرد.
در اینجا یک مثال گردآوری کردم که نشان می دهد /start/ یک برنامه کاربردی است:
من این را در حالی مشاهده کردم که بخشی از چارچوب ASP.NET را مرور کردم :
هنگامی که این خدمات (مشخصات، تأیید هویت، و نقش) فعال می شوند، می توانید درخواست های POST را به نقطه پایان خود ارسال کنید. این موارد باید در ارزیابی مربوط به اطلاعات باید گزارش شوند تا اطمینان حاصل شود که آنها واقعا برای استفاده از وب سایت مورد نیاز هستند. این خدمات وب ممکن است منجر به افشای اطلاعات یا حملات حدس زدن رمز عبور نیز شود. درخواست HTTP زیر درخواست نمونه ای را برای نقطه پایانی ورود به سرویس Authentication نشان می دهد:
#Security
#pentest
✅@SpadSec
هنگامی که مشغول تست یک وب سایت در IIS هستیم آگاهی داشتن از مسیر یک برنامه یا یک پوشه (یا یک پوشه مجازی) بسیار مهم است.
اگر با دایرکتوری مجازی و شرایط اپلیکیشن ها در IIS آشنایی ندارید می توانید از این لینک استفاده کنید
چرا دانستن این امر مفید است؟
من این را با استفاده از مثال های زیر توضیح می دهم.
اگر بتوانیم یک فایل را بجای یک پوشه در یک برنامه IIS بارگذاری کنیم، با آپلود web.config می توان RCE خیلی بهتری بدست آورد. به عنوان مثال : آپلود یک فایل در ریشه (Root) یک وب سایت دسترسی موثرتری برای ما دارد.
وقتی که ما کلید برای ایجاد VViewState داریم، به این اطلاعات نیاز بیشتری خواهیم داشت در غیر این صورت باید از فرآیند سعی و خطا استفاده کنیم. برای جزئیات بیشتر، Exploiting Deserialisation را از طریق ViewState در ASP.NET مشاهده کنید.
جزئیات بیشتر
ما چطوری می تونیم این کار را انجام بدهیم؟
با ارسال یکی از درخواست های GET زیر به یک مسیر، اگر برنامه با کد وضعیت 200 Ok و برخی از کدهای جاوا اسکریپت پاسخ دهد، این یک برنامه کاربردی است. اگر با کد وضعیت 500 خطای داخلی پاسخ می دهد، یک پوشه است:
http(s)://target/path1/path2/profile_json_appservice.axd/jsdebug
orhttp(s)://target/path1/path2/profile_json_appservice.axd/js
همچنین Role_JSON_AppService.axd
یا Authentication_JSON_AppService.axd می تواند به جای Profile_JSON_AppService.axd استفاده شود
در این فرآیند حتی اگر این خدمات غیرفعال شود (به طور پیش فرض) کار خواهد کرد.
در اینجا یک مثال گردآوری کردم که نشان می دهد /start/ یک برنامه کاربردی است:
https://office.live.com/start/profile_json_appservice.axd/jsdebug
فایل /stat/ یک پوشه مجازی استhttps://office.live.com/stat/profile_json_appservice.axd/jsdebug
در اینجا سوالی پیش می آید که چگونه آن را پیدا کردم؟من این را در حالی مشاهده کردم که بخشی از چارچوب ASP.NET را مرور کردم :
https://referencesource.microsoft.com/#system.web.extensions/Script/Services/WebServiceData.cs
یادداشت های جانبی:هنگامی که این خدمات (مشخصات، تأیید هویت، و نقش) فعال می شوند، می توانید درخواست های POST را به نقطه پایان خود ارسال کنید. این موارد باید در ارزیابی مربوط به اطلاعات باید گزارش شوند تا اطمینان حاصل شود که آنها واقعا برای استفاده از وب سایت مورد نیاز هستند. این خدمات وب ممکن است منجر به افشای اطلاعات یا حملات حدس زدن رمز عبور نیز شود. درخواست HTTP زیر درخواست نمونه ای را برای نقطه پایانی ورود به سرویس Authentication نشان می دهد:
POST /someapppath/authentication_json_appservice.axd/login HTTP/1.1
Host: target
Content-Length: 69
Content-Type: application/json
{"userName":"guest","password":"guest","createPersistentCookie":true}
#vulnerability#Security
#pentest
✅@SpadSec
Docs
Understanding Sites, Applications, and Virtual Directories on IIS 7
In IIS, you can create sites, applications, and virtual directories to share information with users over the Internet, an intranet, or an extranet. Although...
شبکه اجتماعی Linkedin توسط هکر های ایرانی APT34 مورد هدف قرار گرفت
جزئیات بیشتر
#infosec
#news
#malware
✅@SpadSec
جزئیات بیشتر
#infosec
#news
#malware
✅@SpadSec
یک محقق آلمانی آسیب پذیری بسیار جدی در ProFTPD کشف کرد این آسیب پذیری از نوع Arbitrary File Copy است
در حال حاضر بیشتر از 1,000,000 سرور از ProFTPD استفاده میکنند
این آسیب پذیری در ماژول mod_copy به وجود امده است که به کاربران این اجازه را میدهد فایل های خودشان را توی سرور از قسمتی به مکان خاصی از سرور به راحتی انتقال بدهند
این آسیب پذیری در مواردی خاص میتواند منجر به اجرای کد از راه دور نیز بشود
اطلاعات بیشتر در اینجا
#vulnerability
#infosec
#exploit
✅@SpadSec
در حال حاضر بیشتر از 1,000,000 سرور از ProFTPD استفاده میکنند
این آسیب پذیری در ماژول mod_copy به وجود امده است که به کاربران این اجازه را میدهد فایل های خودشان را توی سرور از قسمتی به مکان خاصی از سرور به راحتی انتقال بدهند
این آسیب پذیری در مواردی خاص میتواند منجر به اجرای کد از راه دور نیز بشود
اطلاعات بیشتر در اینجا
#vulnerability
#infosec
#exploit
✅@SpadSec
مرکز امنیتی ایران سایبر | ICG
یک محقق آلمانی آسیب پذیری بسیار جدی در ProFTPD کشف کرد این آسیب پذیری از نوع Arbitrary File Copy است در حال حاضر بیشتر از 1,000,000 سرور از ProFTPD استفاده میکنند این آسیب پذیری در ماژول mod_copy به وجود امده است که به کاربران این اجازه را میدهد فایل های…
با یک جستجوی ساده در shodan میتوانیم سرور های در حال استفاده از ProFTPD را مشاهده کنیم
#ProFTPd
#vulnerability
#infosec
✅@SpadSec
#ProFTPd
#vulnerability
#infosec
✅@SpadSec
گوشی اندرویدی شما با پخش شدن فقط یک ویدیو کلیپ میتواند هک شود!
آسیب پذیری بسیار بحرانی در اندروید کشف شده که به هکر اجازه اجرای کد از راه دور را میدهد!
نسخه های آسیب پذیر:
Android-7.0
Android-7.1.1
Android-7.1.2
Android-8.0
Android-8.1
Android-9
اطلاعات بیشتر در اینجا!
#vulnerability
#RCE
#infosec
#Exploit
✅@SpadSec
آسیب پذیری بسیار بحرانی در اندروید کشف شده که به هکر اجازه اجرای کد از راه دور را میدهد!
نسخه های آسیب پذیر:
Android-7.0
Android-7.1.1
Android-7.1.2
Android-8.0
Android-8.1
Android-9
اطلاعات بیشتر در اینجا!
#vulnerability
#RCE
#infosec
#Exploit
✅@SpadSec
یک آسیب پذیری بحرانی در نرم افزار McAfee Data Loss Prevention کشف شده است این آسیب پذیری از نوع ترفیع امتیازی (privilege escalation ) است
اطلاعات بیشتر در اینجا!
#vulnerability
#infosec
#Mcafee
✅@SpadSec
اطلاعات بیشتر در اینجا!
#vulnerability
#infosec
#Mcafee
✅@SpadSec
یک آسیب پذیری در نرم افزار ارسال ایمیل EXIM کشف شده است که موجب می شود مهاجم بتواند کدهای مخرب را با دسترسی کاربر ریشه (Root) اجرا نماید
این آسیب پذیری سیستم عامل ابونتو را هدف قرار داده است.
کد CVE برای این آسیب پذیری: CVE-2019-13917
اطلاعات بیشتر در اینجا
#vulnerability
#infosec
#Ubuntu
✅@SpadSec
این آسیب پذیری سیستم عامل ابونتو را هدف قرار داده است.
کد CVE برای این آسیب پذیری: CVE-2019-13917
اطلاعات بیشتر در اینجا
#vulnerability
#infosec
#Ubuntu
✅@SpadSec
مرکز امنیتی ایران سایبر | ICG
Instagram 0day Vulnerability [PoC] کشف حفره امنیتی در اینستاگرام توسط گروه امنیتی اسپاد #vulnerability #instagram #exploit ✅@SpadSec
are you ready for more 0days?
Spad Security Group
Spad Security Group
Media is too big
VIEW IN TELEGRAM
Core Joomla! 3.x 0day RCE Vulnerability [PoC]
#vulnerability
#joomla
#exploit
#irancyber
@IranCyber_Org
@SpadSec
#vulnerability
#joomla
#exploit
#irancyber
@IranCyber_Org
@SpadSec
یک آسیب پذیری وصله نشده از نوع RCE در نرم افزار LibreOffice باعث می شود هکرها کنترل کاملی روی کامپیوتر شما داشته باشند!
اطلاعات بیشتر در اینجا
#vulnerability
#RCE
#infosec
✅@SpadSec
اطلاعات بیشتر در اینجا
#vulnerability
#RCE
#infosec
✅@SpadSec
سوال : برنامه ای بنویسید که وقتی موس را روی مانیتور به حرکت در اوردیم رنگ RGB اون قسمت به ما نشان داده شود
جواب:
ماژول PIL.ImageGrab برای دریافت اطلاعات RGB اون قسمت X,y
ماژول pyautogui برای دریافت اطلاعات مکانی موس x,y
چون سوال از ما درخواست کرده بود موس هر جای مانیتور حرکت کرد RGB اون مکان رو بده پس باید از یه حلقه استفاده میکردیم!
جواب این چالش رو فقط 1نفر بلد بودن دوست عزیزی با ایدی @z0n50 کد ایشون هم قرار میدم جای Edit کردن داره کدشون اما جواب میده! از ایشون بابت شرکت در این چالش تشکر میکنیم امیدواریم که در چالش های بعدی هم مارو یاری کنند❤️💥
انتظارم از کاربران کانال بالاس لطفا کمی بیشتر چالش پذیر باشید.🤓
#answer_programming_challenge
#programming_challenge
✅@SpadSec
جواب:
import PIL.ImageGrab, pyautogui
while True:
x, y = pyautogui.position()
print(PIL.ImageGrab.grab().load()[x, y])
توضیحات > در قسمت اول ما دو ماژول PIL.ImageGrab و pyautogui فراخانی میکنیمماژول PIL.ImageGrab برای دریافت اطلاعات RGB اون قسمت X,y
ماژول pyautogui برای دریافت اطلاعات مکانی موس x,y
چون سوال از ما درخواست کرده بود موس هر جای مانیتور حرکت کرد RGB اون مکان رو بده پس باید از یه حلقه استفاده میکردیم!
جواب این چالش رو فقط 1نفر بلد بودن دوست عزیزی با ایدی @z0n50 کد ایشون هم قرار میدم جای Edit کردن داره کدشون اما جواب میده! از ایشون بابت شرکت در این چالش تشکر میکنیم امیدواریم که در چالش های بعدی هم مارو یاری کنند❤️💥
انتظارم از کاربران کانال بالاس لطفا کمی بیشتر چالش پذیر باشید.🤓
#!/usr/bin/env python
from pynput.mouse import Listener
import logging,pyautogui,time
logging.basicConfig(level=logging.DEBUG)
def on_move(x,y):
PIXEL = pyautogui.screenshot(region=(x,y, 1, 1))
COLOR = PIXEL.getcolors()
print("RGB: %s" % (COLOR[0][1].__str__()))
with Listener(on_move=on_move) as listener:
listener.join()#answer_programming_challenge
#programming_challenge
✅@SpadSec
محققان از انتشار یک باج افزار جدید اندرویدی خبر دادند. این باج افزار از طریق SMS و با ارسال لینک مخرب به مخاطبین قربانی گسترش می یابد!
اطلاعات بیشتر در اینجا
#ransomware
#android
✅@SpadSec
اطلاعات بیشتر در اینجا
#ransomware
#android
✅@SpadSec
WeLiveSecurity
Android ransomware is back | WeLiveSecurity
ESET researchers discover a new Android ransomware family that attempts to spread to victims’ contacts and deploys some unusual tricks.
سوال : برنامه ای بنویسید که هر گاه رنگ دکمه به رنگ سبز در آمد در کنسول پیامی را به ما نشان دهد و روی دکمه عمل کلیک را انجام دهد.
(فایل victor.html را باز کنید)
کد فایل victor :
کسایی که در چالش شرکت کردند 6 نفر بودن که فقط 2 نفر جواب صحیح دادن با ایدی @z0n50 و @Sir_Developer یه نکته ای اینجا وجود داره این دو دوست عزیز از ماژول سلنیوم استفاده کردند اینکار درسته که حرفه ای تره ولی من هدفم نشون دادن یک نکته بود! نکته اینجاست اگر فایل کد شده بود و هیچ element واسه پیدا کردن وجود نداشت این کد به مشکل بر میخورد هدف این بود که ذهن شما رو باز کنم و دیدتون رو نسبت به همه چیز گسترش بدم! شما میتونید با برنامه نویسی به همه چیز کنترل داشته باشید💥
کد دوستان رو هم به اشتراک میزارم.👌🏻
اولین کد مال اقای @Sir_Developer
#answer_programming_challenge
#programming_challenge
✅@SpadSec
(فایل victor.html را باز کنید)
کد فایل victor :
<!DOCTYPE html>
<html>
<head>
<title>Challenge level 3</title>
</head>
<body>
<button id="background" style="position:absolute; color:#00bfff" type="button">Click Me!</button>
<script>
var doc = document.getElementById("background");
var color = ["black", "blue", "brown", "green"];
var i = 0;
function ChangePos(){
var x=Math.random()*1000;
x=Math.round(x);
var y=Math.random()*500;
y=Math.round(y);
document.getElementById("background").style.left=x+'px';
document.getElementById("background").style.top=y+'px';
}
function ChangeColor() {
doc.style.backgroundColor = color[i];
i++;
if(i > color.length - 1) {
i = 0;
}
}
ChangePos();
setInterval(ChangeColor, 2687);
</script>
</body>
</html>
جواب:# coding=utf-8import PIL.ImageGrab, pyautogui, sys
def GetPos():
while True:
x, y = pyautogui.position()
try:
print(' Ctrl+C For Chose Position of Button: POsX={} PosY={}'.format(x, y)),
sys.stdout.flush()
print("\r"),
except KeyboardInterrupt:
return x, y
x, y = GetPos()
while True:
Color_OF_Butten = PIL.ImageGrab.grab().load()[x, y]
if str(Color_OF_Butten) == '(0, 128, 0)':
print('\n Green Now!!')
pyautogui.click(x, y)
print(' Click Done!~')
break
توضیحات > ابتدا ما یک تابع ایجاد کردیم تا موقعیت مکانی دکمه رو از کاربر بگیره سپس با استفاده از یه حلقه منتظر موندیم تا زمانی که دکمه به رنگ سبز در بیاد (با استفاده دستور شرطی و کد RGB) سپس با استفاده از ماژول pyautogui عمل کلیک را انجام دادیمکسایی که در چالش شرکت کردند 6 نفر بودن که فقط 2 نفر جواب صحیح دادن با ایدی @z0n50 و @Sir_Developer یه نکته ای اینجا وجود داره این دو دوست عزیز از ماژول سلنیوم استفاده کردند اینکار درسته که حرفه ای تره ولی من هدفم نشون دادن یک نکته بود! نکته اینجاست اگر فایل کد شده بود و هیچ element واسه پیدا کردن وجود نداشت این کد به مشکل بر میخورد هدف این بود که ذهن شما رو باز کنم و دیدتون رو نسبت به همه چیز گسترش بدم! شما میتونید با برنامه نویسی به همه چیز کنترل داشته باشید💥
کد دوستان رو هم به اشتراک میزارم.👌🏻
اولین کد مال اقای @Sir_Developer
from selenium import webdriver
import os, time
pwd = 'file:///'+str(os.getcwd()).replace('\\','/')+'/victor.html'
driver = webdriver.Edge()
driver.get(pwd)
while True:
time.sleep(1)
btn = driver.find_element_by_id('background')
a = btn.value_of_css_property('background-color')
if str(a) == 'rgb(0, 128, 0)':
print('Color is Greeen!')
btn.click()
دومین کد برای اقای @z0n50#!/bin/python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver import Firefox
options = Options()
options.add_argument('-headless')
driver =webdriver.Firefox(executable_path='geckodriver.exe')
driver.get("https://1ea99c4c-269d-43e5-a253-ccf06e786612.htmlpasta.com")
element=driver.find_element_by_id("background")
while True:
color=(element.value_of_css_property("background-color"))
if color =="rgb(0, 128, 0)":
print('green')
element.send_keys(Keys.ENTER)
break
تشکر میکنم از این بزرگواران برای شرکت در این چالش امیدوارم در چالش های بعدی نیز این عزیزان رو ببینیم❤️#answer_programming_challenge
#programming_challenge
✅@SpadSec
آسیب پذیری بحرانی در پروتکل DHCP امکان کنترل کامل شبکه را به مهاجمین خواهد داد!
اطلاعات بیشتر در اینجا
#vulnerability
#DHCP
#infosec
✅@SpadSec
اطلاعات بیشتر در اینجا
#vulnerability
#DHCP
#infosec
✅@SpadSec
آسیب پذیری امنیتی در ابزار Designer موجود درphpMyAdmin امکان تزریق SQL و خواندن یا تغییر داده ها را خواهد داد
اطلاعات بیشتر در اینجا
#SQL_injection
#phpMyAdmin
✅@SpadSec
اطلاعات بیشتر در اینجا
#SQL_injection
#phpMyAdmin
✅@SpadSec
Vigil@nce
Vulnerability about phpMyAdmin: SQL injection via Designer | Vigil@nce
An attacker can use a SQL injection via Designer of phpMyAdmin, in order to read or alter data, identified by CVE-2019-11768.
مجموع داکرهای متعدد برای پیاده سازی و آزمایش آسیپ پذیریهای مختلف
https://github.com/vulhub/vulhub
#docker
#pentest
✅@SpadSec
https://github.com/vulhub/vulhub
#docker
#pentest
✅@SpadSec
GitHub
GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose
Pre-Built Vulnerable Environments Based on Docker-Compose - vulhub/vulhub