pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/net/py-impacket
Module Name: pkgsrc
Committed By: adam
Date: Wed Sep 18 09:13:09 UTC 2024
Modified Files:
pkgsrc/net/py-impacket: ALTERNATIVES Makefile PLIST distinfo
Log Message:
py-impacket: updated to 0.12.0
Impacket v0.12.0-dev:
1. Library improvements
* Fixed broken hRSetServiceObjectSecurity method (@rkivys)
* Removed dsinternals dependency (@anadrianmanrique)
* Fixed srvs.hNetrShareEnum returning erronous shares (@cnotin)
* Fixed lmhash computing to support non standard characters in the password (@anadrianmanrique)
* Assorted fixes when processing Unicode data (@alexisbalbachan)
* Added `[MS-GKDI]` Group Key Distribution Protocol implementation (@zblurx)
* Fixed incorrect padding in SMBSessionSetupAndX_Extended_ResponseData (@rtpt-erikgeiser)
* Upgraded dependency pyreadline -> pyreadline3 (@anadrianmanrique)
* SMB Server:
* Added query information level 0x0109 for smb1 "SMB_QUERY_FILE_STREAM_INFO" (@Adamkadaban)
* Fixed filename encoding in queryPathInformation (@JerAxxxxxxx)
* Fixed NextEntryOffset for large directory listings (@robnanola)
* Fixed server returning an empty folder when cutting and pasting recursive directories (@robnanola)
* DHCP: Fixed encoding issues (@ujwalkomarla)
3. Examples improvements
* [secretsdump.py](examples/secretsdump.py):
* Double DC Sync performance for DCs supporting SID lookups (@tomspencer)
* Added ability to skip dumping of SAM or SECURITY hives when performing remote operations (@RazzburyPi)
* Added ability to specify users to skip when dumping NTDS (@RazzburyPi)
* [ticketer.py](examples/ticketer.py):
* Support to create Sapphire tickets (@ShutdownRepo)
* [GetUserSPNs.py](examples/GetUserSPNs.py), [getTGT.py](examples/getTGT.py):
* Support for Kerberoasting without pre-authentication and ST request through AS-REQ (@ShutdownRepo)
* [wmiexec.py](examples/wmiexec.py):
* Fix kerberos with remoteHost & add '-target-ip'(@XiaoliChan)
* [ntlmrelayx.py](examples/ntlmrelayx.py):
* Added the creation of a new machine account through SMB (@BlWasp)
* NTLMRelayX Multirelay fixes for target handling, added --keep-relaying flag (@alexisbalbachan)
* Logging multirelay status when triggering the example (@gabrielg5)
* Write certificates to file rather than outputting b64 to console (@RazzburyPi)
* Improved ability to continue relaying to ADCS web enrollment endpoint in order to request multiple certificates for different users (@RazzburyPi)
* Fixed compatibility issue with other SMB clients connecting to the SOCKS proxy created by ntlmrelayx (@jfjallid)
* Allow configuration of the SOCKS5 address and port (@rtpt-erikgeiser)
* Fixed implementation of MSSQLShell (@gabrielg5)
* Logging notification of received connections in all relay servers (@gabrielg5)
* Add domain and username to interactive Ldap shell message (@minniear)
* Enhanced MSSQLShell in NTLMRelayX leveraging TcpShell & output messages (@gabrielg5)
* LDAP Attack: Bugfixes when parsing responses (@SAERXCIT)
* [getST.py](examples/getST.py):
* Added -self, -altservice and -u2u for S4U2self abuse, S4U2self+u2u, and service substitution (@ShutdownRepo)
* Added ability to set the RENEW ticket option to renew a TGT (@shikatano)
* Fixed unicode encoding error when using the -impersonate flag (@alexisbalbachan)
* [getTGT.py](examples/getTGT.py):
* Added principalType as new parameter (@DevSpork)
* [reg.py](examples/reg.py):
* Start remote registry as unprivileged user in reg.py (@dadevel)
* Allow adding Binary values (@dc3l1ne)
* Add missing Null byte for REG_SZ values (@PfiatDe)
* Support for adding REG_MULTI_SZ values through (@garbrielg5)
* [smbclient.py](examples/smbclient.py):
* Added ability to provide an output file that the smbclient mini shell will write commands and output to (@RazzburyPi)
* Fixed path parse issue when running `tree` command (@trietend)
* [smbserver.py](examples/smbserver.py):
* Added parameter "-outputfile" to set smbserver log file(gabrielg5)
* [DumpNTLMInfo.py](examples/DumpNTLMInfo.py):
* Allow execution on non-default ports (@jeffmcjunkin)
* Fixed KeyError exception when running with a Windows 2003 target (@XiaoliChan)
* [findDelegation.py](examples/findDelegation.py):
* Added new column to show if SPN exists (@p0dalirius)
* [mssqlclient.py](examples/mssqlclient.py):
* Added `-target-ip` parameter to allow Kerberos authentication without much change in the DNS configuration of the local machine (@Palkovsky)
* [mssqlshell.py](examples/mssqlshell.py):
* Switching back to original DB after running `enum_impersonate` command (@exploide)
* Fixed logging in printReplies showing error messages (@gabrielg5)
* [registry-read.py](examples/registry-read.py):
* Fixed scenario where value name contains backlash (@DidierA)
* [net.py](examples/net.py):
* Fixed User "Account Active" property value (@marcobarlottini)
* Fixed log messages printing variables in the wrong order (@Cyb3rC3lt)
* [rbcd.py](examples/rbcd.py):
* Handled SID not found in LDAP error (@ShutdownRepo)
* [GetUserSPNs.py](examples/GetUserSPNs.py):
* Updated the help information for -outputfile to be consistent with -save (@scarvell)
* [ntfs-read.py](examples/ntfs-read.py):
* Minor refactor in ntfs-read.py to make it more human-readable (@NtAlexio2)
* [ldap_shell.py](examples/ldap_shell.py):
* Added support for dirsync and whoami commands (@nurfed1)
* [lookupsid.py](examples/lookupsid.py):
* Now supports kerberos auth (@A1vinSmith)
* [samrdump.py](examples/samrdump.py):
* Will fetch AdminComment using MSRPC (@joeldeleep)
* [tstool.py](examples/tstool.py):
* Added support for kerberos auth, resolves SIDs (@nopernik)
4. New examples
* [describeTicket.py](examples/describeTicket.py): Ticket describer and decrypter. (@ShutdownRepo)
* [GetADComputers.py](examples/GetADComputers.py): Query's DC via LDAP and returns the COMPUTER objects and the useful attributes such as full dns name, operating system name and version.
(@F-Masood)
* [GetLAPSPassword.py](examples/GetLAPSPassword.py): Extract LAPS passwords from LDAP (@zblurx and @dru1d-foofus)
* [dacledit.py](examples/dacledit.py): This script can be used to read, write, remove, backup, restore ACEs (Access Control Entries) in an object DACL (Discretionary Access Control List).
(@_nwodtuhs) (@BlWasp_) (@Wlayzz)
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 pkgsrc/net/py-impacket/ALTERNATIVES
cvs rdiff -u -r1.12 -r1.13 pkgsrc/net/py-impacket/Makefile
cvs rdiff -u -r1.9 -r1.10 pkgsrc/net/py-impacket/PLIST
cvs rdiff -u -r1.8 -r1.9 pkgsrc/net/py-impacket/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/net/py-impacket/ALTERNATIVES
diff -u pkgsrc/net/py-impacket/ALTERNATIVES:1.5 pkgsrc/net/py-impacket/ALTERNATIVES:1.6
--- pkgsrc/net/py-impacket/ALTERNATIVES:1.5 Thu Feb 29 20:56:48 2024
+++ pkgsrc/net/py-impacket/ALTERNATIVES Wed Sep 18 09:13:09 2024
@@ -1,10 +1,14 @@
bin/Get-GPPPassword.py @PREFIX@/bin/Get-GPPPassword-@PYVERSSUFFIX@.py
+bin/GetADComputers.py @PREFIX@/bin/GetADComputers-@PYVERSSUFFIX@.py
bin/GetADUsers.py @PREFIX@/bin/GetADUsers-@PYVERSSUFFIX@.py
+bin/GetLAPSPassword.py @PREFIX@/bin/GetLAPSPassword-@PYVERSSUFFIX@.py
bin/GetNPUsers.py @PREFIX@/bin/GetNPUsers-@PYVERSSUFFIX@.py
bin/GetUserSPNs.py @PREFIX@/bin/GetUserSPNs-@PYVERSSUFFIX@.py
bin/addcomputer.py @PREFIX@/bin/addcomputer-@PYVERSSUFFIX@.py
bin/atexec.py @PREFIX@/bin/atexec-@PYVERSSUFFIX@.py
+bin/dacledit.py @PREFIX@/bin/dacledit-@PYVERSSUFFIX@.py
bin/dcomexec.py @PREFIX@/bin/dcomexec-@PYVERSSUFFIX@.py
+bin/describeTicket.py @PREFIX@/bin/describeTicket-@PYVERSSUFFIX@.py
bin/dpapi.py @PREFIX@/bin/dpapi-@PYVERSSUFFIX@.py
bin/esentutl.py @PREFIX@/bin/esentutl-@PYVERSSUFFIX@.py
bin/exchanger.py @PREFIX@/bin/exchanger-@PYVERSSUFFIX@.py
@@ -22,9 +26,9 @@ bin/mqtt_check.py @PREFIX@/bin/mqtt_chec
bin/mssqlclient.py @PREFIX@/bin/mssqlclient-@PYVERSSUFFIX@.py
bin/mssqlinstance.py @PREFIX@/bin/mssqlinstance-@PYVERSSUFFIX@.py
bin/netview.py @PREFIX@/bin/netview-@PYVERSSUFFIX@.py
-bin/nmapAnswerMachine.py @PREFIX@/bin/nmapAnswerMachine-@PYVERSSUFFIX@.py
bin/ntfs-read.py @PREFIX@/bin/ntfs-read-@PYVERSSUFFIX@.py
bin/ntlmrelayx.py @PREFIX@/bin/ntlmrelayx-@PYVERSSUFFIX@.py
+bin/owneredit.py @PREFIX@/bin/owneredit-@PYVERSSUFFIX@.py
bin/ping.py @PREFIX@/bin/ping-@PYVERSSUFFIX@.py
bin/ping6.py @PREFIX@/bin/ping6-@PYVERSSUFFIX@.py
bin/psexec.py @PREFIX@/bin/psexec-@PYVERSSUFFIX@.py
@@ -41,8 +45,6 @@ bin/secretsdump.py @PREFIX@/bin/secretsd
bin/services.py @PREFIX@/bin/services-@PYVERSSUFFIX@.py
bin/smbclient.py @PREFIX@/bin/smbclient-@PYVERSSUFFIX@.py
bin/smbexec.py @PREFIX@/bin/smbexec-@PYVERSSUFFIX@.py
-bin/smbpasswd.py @PREFIX@/bin/smbpasswd-@PYVERSSUFFIX@.py
-bin/smbrelayx.py @PREFIX@/bin/smbrelayx-@PYVERSSUFFIX@.py
bin/smbserver.py @PREFIX@/bin/smbserver-@PYVERSSUFFIX@.py
bin/sniff.py @PREFIX@/bin/sniff-@PYVERSSUFFIX@.py
bin/sniffer.py @PREFIX@/bin/sniffer-@PYVERSSUFFIX@.py
Index: pkgsrc/net/py-impacket/Makefile
diff -u pkgsrc/net/py-impacket/Makefile:1.12 pkgsrc/net/py-impacket/Makefile:1.13
--- pkgsrc/net/py-impacket/Makefile:1.12 Thu Feb 29 20:56:48 2024
+++ pkgsrc/net/py-impacket/Makefile Wed Sep 18 09:13:09 2024
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.12 2024/02/29 20:56:48 adam Exp $
+# $NetBSD: Makefile,v 1.13 2024/09/18 09:13:09 adam Exp $
-DISTNAME= impacket-0.11.0
+DISTNAME= impacket-0.12.0
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= net python
MASTER_SITES= ${MASTER_SITE_PYPI:=i/impacket/}
@@ -10,38 +10,37 @@ HOMEPAGE= https://www.secureauth.com/lab
COMMENT= Collection of Python classes for working with network protocols
LICENSE= apache-1.1
-TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
DEPENDS+= ${PYPKGPREFIX}-asn1>=0.2.3:../../security/py-asn1
+DEPENDS+= ${PYPKGPREFIX}-asn1-modules-[0-9]*:../../security/py-asn1-modules
DEPENDS+= ${PYPKGPREFIX}-charset-normalizer-[0-9]*:../../converters/py-charset-normalizer
DEPENDS+= ${PYPKGPREFIX}-cryptodome-[0-9]*:../../security/py-cryptodome
-DEPENDS+= ${PYPKGPREFIX}-dsinternals-[0-9]*:../../databases/py-dsinternals
DEPENDS+= ${PYPKGPREFIX}-flask>=1.0:../../www/py-flask
-DEPENDS+= ${PYPKGPREFIX}-future-[0-9]*:../../devel/py-future
DEPENDS+= ${PYPKGPREFIX}-ldap3>=2.6.1:../../databases/py-ldap3
DEPENDS+= ${PYPKGPREFIX}-ldapdomaindump>=0.9.0:../../net/py-ldapdomaindump
+DEPENDS+= ${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
DEPENDS+= ${PYPKGPREFIX}-six-[0-9]*:../../lang/py-six
TEST_DEPENDS+= ${PYPKGPREFIX}-coverage-[0-9]*:../../devel/py-coverage
-PYTHON_VERSIONS_INCOMPATIBLE= 27
-
SUBST_CLASSES+= crypto
SUBST_STAGE.crypto= pre-configure
SUBST_MESSAGE.crypto= Switching from py-cryptodomex to py-cryptodome.
SUBST_FILES.crypto+= examples/Get-GPPPassword.py
+SUBST_FILES.crypto+= examples/describeTicket.py
SUBST_FILES.crypto+= examples/dpapi.py
SUBST_FILES.crypto+= examples/goldenPac.py
SUBST_FILES.crypto+= examples/mimikatz.py
SUBST_FILES.crypto+= examples/rdp_check.py
-SUBST_FILES.crypto+= examples/smbrelayx.py
SUBST_FILES.crypto+= impacket/crypto.py
SUBST_FILES.crypto+= impacket/dcerpc/v5/drsuapi.py
SUBST_FILES.crypto+= impacket/dcerpc/v5/nrpc.py
SUBST_FILES.crypto+= impacket/dcerpc/v5/rpcrt.py
SUBST_FILES.crypto+= impacket/dcerpc/v5/samr.py
SUBST_FILES.crypto+= impacket/dpapi.py
+SUBST_FILES.crypto+= impacket/dpapi_ng.py
SUBST_FILES.crypto+= impacket/examples/ntlmrelayx/attacks/ldapattack.py
SUBST_FILES.crypto+= impacket/examples/ntlmrelayx/clients/dcsyncclient.py
+SUBST_FILES.crypto+= impacket/examples/ntlmrelayx/utils/shadow_credentials.py
SUBST_FILES.crypto+= impacket/examples/secretsdump.py
SUBST_FILES.crypto+= impacket/krb5/crypto.py
SUBST_FILES.crypto+= impacket/krb5/gssapi.py
@@ -55,10 +54,12 @@ SUBST_FILES.crypto+= tests/misc/test_dpa
SUBST_SED.crypto= -e 's,Cryptodome,Crypto,'
post-install:
-.for bin in DumpNTLMInfo Get-GPPPassword GetADUsers GetNPUsers GetUserSPNs addcomputer atexec \
- changepasswd dcomexec dpapi esentutl exchanger findDelegation getArch getPac getST getTGT \
+.for bin in DumpNTLMInfo Get-GPPPassword GetADComputers GetADUsers GetLAPSPassword GetNPUsers \
+ GetUserSPNs addcomputer atexec changepasswd dacledit dcomexec describeTicket dpapi \
+ esentutl exchanger findDelegation getArch getPac getST getTGT \
goldenPac karmaSMB keylistattack kintercept lookupsid machine_role mimikatz mqtt_check \
- mssqlclient mssqlinstance net netview nmapAnswerMachine ntfs-read ntlmrelayx ping ping6 \
+ mssqlclient mssqlinstance net netview nmapAnswerMachine ntfs-read ntlmrelayx owneredit \
+ ping ping6 \
psexec raiseChild rbcd rdp_check reg registry-read rpcdump rpcmap sambaPipe samrdump \
secretsdump services smbclient smbexec smbpasswd smbrelayx smbserver sniff sniffer \
split ticketConverter ticketer tstool wmiexec wmipersist wmiquery
Index: pkgsrc/net/py-impacket/PLIST
diff -u pkgsrc/net/py-impacket/PLIST:1.9 pkgsrc/net/py-impacket/PLIST:1.10
--- pkgsrc/net/py-impacket/PLIST:1.9 Thu Feb 29 20:56:48 2024
+++ pkgsrc/net/py-impacket/PLIST Wed Sep 18 09:13:09 2024
@@ -1,13 +1,17 @@
-@comment $NetBSD: PLIST,v 1.9 2024/02/29 20:56:48 adam Exp $
+@comment $NetBSD: PLIST,v 1.10 2024/09/18 09:13:09 adam Exp $
bin/DumpNTLMInfo-${PYVERSSUFFIX}.py
bin/Get-GPPPassword-${PYVERSSUFFIX}.py
+bin/GetADComputers-${PYVERSSUFFIX}.py
bin/GetADUsers-${PYVERSSUFFIX}.py
+bin/GetLAPSPassword-${PYVERSSUFFIX}.py
bin/GetNPUsers-${PYVERSSUFFIX}.py
bin/GetUserSPNs-${PYVERSSUFFIX}.py
bin/addcomputer-${PYVERSSUFFIX}.py
bin/atexec-${PYVERSSUFFIX}.py
bin/changepasswd-${PYVERSSUFFIX}.py
+bin/dacledit-${PYVERSSUFFIX}.py
bin/dcomexec-${PYVERSSUFFIX}.py
+bin/describeTicket-${PYVERSSUFFIX}.py
bin/dpapi-${PYVERSSUFFIX}.py
bin/esentutl-${PYVERSSUFFIX}.py
bin/exchanger-${PYVERSSUFFIX}.py
@@ -28,9 +32,9 @@ bin/mssqlclient-${PYVERSSUFFIX}.py
bin/mssqlinstance-${PYVERSSUFFIX}.py
bin/net-${PYVERSSUFFIX}.py
bin/netview-${PYVERSSUFFIX}.py
-bin/nmapAnswerMachine-${PYVERSSUFFIX}.py
bin/ntfs-read-${PYVERSSUFFIX}.py
bin/ntlmrelayx-${PYVERSSUFFIX}.py
+bin/owneredit-${PYVERSSUFFIX}.py
bin/ping-${PYVERSSUFFIX}.py
bin/ping6-${PYVERSSUFFIX}.py
bin/psexec-${PYVERSSUFFIX}.py
@@ -47,8 +51,6 @@ bin/secretsdump-${PYVERSSUFFIX}.py
bin/services-${PYVERSSUFFIX}.py
bin/smbclient-${PYVERSSUFFIX}.py
bin/smbexec-${PYVERSSUFFIX}.py
-bin/smbpasswd-${PYVERSSUFFIX}.py
-bin/smbrelayx-${PYVERSSUFFIX}.py
bin/smbserver-${PYVERSSUFFIX}.py
bin/sniff-${PYVERSSUFFIX}.py
bin/sniffer-${PYVERSSUFFIX}.py
@@ -157,6 +159,9 @@ ${PYSITELIB}/impacket/dcerpc/v5/even.pyo
${PYSITELIB}/impacket/dcerpc/v5/even6.py
${PYSITELIB}/impacket/dcerpc/v5/even6.pyc
${PYSITELIB}/impacket/dcerpc/v5/even6.pyo
+${PYSITELIB}/impacket/dcerpc/v5/gkdi.py
+${PYSITELIB}/impacket/dcerpc/v5/gkdi.pyc
+${PYSITELIB}/impacket/dcerpc/v5/gkdi.pyo
${PYSITELIB}/impacket/dcerpc/v5/iphlp.py
${PYSITELIB}/impacket/dcerpc/v5/iphlp.pyc
${PYSITELIB}/impacket/dcerpc/v5/iphlp.pyo
@@ -235,6 +240,9 @@ ${PYSITELIB}/impacket/dot11.pyo
${PYSITELIB}/impacket/dpapi.py
${PYSITELIB}/impacket/dpapi.pyc
${PYSITELIB}/impacket/dpapi.pyo
+${PYSITELIB}/impacket/dpapi_ng.py
+${PYSITELIB}/impacket/dpapi_ng.pyc
+${PYSITELIB}/impacket/dpapi_ng.pyo
${PYSITELIB}/impacket/eap.py
${PYSITELIB}/impacket/eap.pyc
${PYSITELIB}/impacket/eap.pyo
@@ -364,6 +372,9 @@ ${PYSITELIB}/impacket/examples/ntlmrelay
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/enum.py
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/enum.pyc
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/enum.pyo
+${PYSITELIB}/impacket/examples/ntlmrelayx/utils/shadow_credentials.py
+${PYSITELIB}/impacket/examples/ntlmrelayx/utils/shadow_credentials.pyc
+${PYSITELIB}/impacket/examples/ntlmrelayx/utils/shadow_credentials.pyo
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/ssl.py
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/ssl.pyc
${PYSITELIB}/impacket/examples/ntlmrelayx/utils/ssl.pyo
@@ -454,6 +465,9 @@ ${PYSITELIB}/impacket/mapi_constants.pyo
${PYSITELIB}/impacket/mqtt.py
${PYSITELIB}/impacket/mqtt.pyc
${PYSITELIB}/impacket/mqtt.pyo
+${PYSITELIB}/impacket/msada_guids.py
+${PYSITELIB}/impacket/msada_guids.pyc
+${PYSITELIB}/impacket/msada_guids.pyo
${PYSITELIB}/impacket/nmb.py
${PYSITELIB}/impacket/nmb.pyc
${PYSITELIB}/impacket/nmb.pyo
Index: pkgsrc/net/py-impacket/distinfo
diff -u pkgsrc/net/py-impacket/distinfo:1.8 pkgsrc/net/py-impacket/distinfo:1.9
--- pkgsrc/net/py-impacket/distinfo:1.8 Thu Feb 29 20:56:48 2024
+++ pkgsrc/net/py-impacket/distinfo Wed Sep 18 09:13:09 2024
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.8 2024/02/29 20:56:48 adam Exp $
+$NetBSD: distinfo,v 1.9 2024/09/18 09:13:09 adam Exp $
-BLAKE2s (impacket-0.11.0.tar.gz) = 60abdd6728b32110182b08c81778e419bb162d3edc396291947033f13e05fb2e
-SHA512 (impacket-0.11.0.tar.gz) = 8bd7baf3c9c4ca826d9bd472bc1842e4fc1b0a9eae643f247606b05f4b375416550b9e4445414ec51e6524422666ce0c869ee63a2aef59451b827feaccb0db7b
-Size (impacket-0.11.0.tar.gz) = 1502931 bytes
+BLAKE2s (impacket-0.12.0.tar.gz) = c679d61e54cc0aa8c41f5715852f5d29f01778a02d8b00725b982d15a081ae45
+SHA512 (impacket-0.12.0.tar.gz) = 48db5e2973cebc87a84118f2d83202f9583f45b4294e7b17c49da32bd6aedcf4e704447dd9d87e03f754c3947a9759a39624e44c5849718daae9e96b04f9aeb0
+Size (impacket-0.12.0.tar.gz) = 1575482 bytes
SHA1 (patch-setup.py) = 5b7785ce39692150a0e6eb722ff4e2f710e1f9b2
Home |
Main Index |
Thread Index |
Old Index